From 7c288f93f0fc272c117c6480a8af9c6a6baa0d46 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Fri, 25 Aug 2023 12:37:28 +0200 Subject: [PATCH] ci: migrate to woodpecker (#690) --- .drone.yml | 252 ------------------------------- .github/settings.yml | 6 +- .prettierignore | 1 - .tarignore | 2 +- .woodpecker/build-package.yml | 63 ++++++++ .woodpecker/docs.yml | 81 ++++++++++ .woodpecker/notify.yml | 26 ++++ .woodpecker/test.yml | 51 +++++++ README.md | 2 +- exampleSite/content/en/_index.md | 2 +- 10 files changed, 228 insertions(+), 258 deletions(-) delete mode 100644 .drone.yml create mode 100644 .woodpecker/build-package.yml create mode 100644 .woodpecker/docs.yml create mode 100644 .woodpecker/notify.yml create mode 100644 .woodpecker/test.yml diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index 0cae3c2..0000000 --- a/.drone.yml +++ /dev/null @@ -1,252 +0,0 @@ ---- -kind: pipeline -name: test - -platform: - os: linux - arch: amd64 - -steps: - - name: eslint - image: node:lts - commands: - - npm install > /dev/null - - npm run lint - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: assets - image: node:lts - commands: - - npm install > /dev/null - - npm run build - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: testbuild - image: thegeeklab/hugo:0.115.2 - commands: - - mkdir -p exampleSite/themes/ && ln -s $(pwd)/ exampleSite/themes/hugo-geekdoc - - hugo --panicOnWarning -s exampleSite/ -b http://localhost:8000/ - - - name: html-validation - image: thegeeklab/vnu - commands: - - vnu --skip-non-html --also-check-css --errors-only --filterfile .vnuignore exampleSite/public - - - name: link-validation - image: thegeeklab/link-validator - commands: - - link-validator --color=always --rate-limit 10 -e https://github.com/thegeeklab/hugo-geekdoc/edit/main/.* -e https://unsplash.com.* - environment: - LINK_VALIDATOR_BASE_DIR: exampleSite/public - LINK_VALIDATOR_RETRIES: 3 - - - name: page-validation - image: thegeeklab/lhci:0.11 - commands: - - lhci autorun - environment: - LHCI_SERVER_URL: https://drone-artifact.rknet.org/${DRONE_REPO_NAME}/ - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - ---- -kind: pipeline -name: build - -platform: - os: linux - arch: amd64 - -steps: - - name: assets - image: node:lts - commands: - - git fetch -tq - - npm install > /dev/null - - npm run build - - cat VERSION - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: package - image: node:lts - commands: - - npm run pack - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: checksum - image: thegeeklab/alpine-tools - commands: - - cd dist/ && sha256sum * > ../sha256sum.txt - - - name: changelog - image: thegeeklab/git-chglog - commands: - - git fetch -tq - - git-chglog --no-color --no-emoji ${DRONE_TAG:---next-tag unreleased unreleased} - - git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased} - - - name: release - image: plugins/github-release - settings: - api_key: - from_secret: github_token - files: - - dist/* - - sha256sum.txt - note: CHANGELOG.md - overwrite: true - title: ${DRONE_TAG} - when: - ref: - - refs/tags/** - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - test - ---- -kind: pipeline -name: docs - -platform: - os: linux - arch: amd64 - -concurrency: - limit: 1 - -steps: - - name: markdownlint - image: thegeeklab/markdownlint-cli - commands: - - markdownlint 'exampleSite/content/**/*.md' 'README.md' - - - name: spellcheck - image: thegeeklab/alpine-tools - commands: - - spellchecker --files 'exampleSite/content/**/*.md' 'README.md' -d .dictionary -p spell indefinite-article syntax-urls frontmatter --frontmatter-keys title --no-suggestions - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: assets - image: node:lts - commands: - - npm install > /dev/null - - npm run svg-sprite-list - - mkdir -p exampleSite/themes/hugo-geekdoc/ - - curl -sSL https://github.com/thegeeklab/hugo-geekdoc/releases/latest/download/hugo-geekdoc.tar.gz | tar -xz -C exampleSite/themes/hugo-geekdoc/ --strip-components=1 - when: - ref: - - refs/heads/main - - refs/tags/** - - - name: assets-main - image: node:lts - commands: - - npm install > /dev/null - - npm run build - - npm run svg-sprite-list - - mkdir -p exampleSite/themes/ && ln -s $(pwd)/ exampleSite/themes/hugo-geekdoc - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - when: - ref: - - refs/pull/** - - - name: build - image: thegeeklab/hugo:0.115.2 - commands: - - hugo --panicOnWarning -s exampleSite/ - - - name: beautify - image: thegeeklab/alpine-tools - commands: - - html-beautify -r -f 'exampleSite/public/**/*.html' - environment: - FORCE_COLOR: true - NPM_CONFIG_LOGLEVEL: error - - - name: publish - image: thegeeklab/drone-s3-sync:2 - settings: - access_key: - from_secret: s3_access_key - bucket: geekdocs-root - delete: true - endpoint: https://sp.rknet.org - path_style: true - secret_key: - from_secret: s3_secret_access_key - source: exampleSite/public/ - strip_prefix: exampleSite/public/ - when: - ref: - - refs/heads/main - - refs/tags/** - -trigger: - ref: - - refs/heads/main - - refs/tags/** - - refs/pull/** - -depends_on: - - build - ---- -kind: pipeline -name: notifications - -platform: - os: linux - arch: amd64 - -steps: - - name: matrix - image: thegeeklab/drone-matrix - settings: - homeserver: - from_secret: matrix_homeserver - password: - from_secret: matrix_password - roomid: - from_secret: matrix_roomid - template: "Status: **{{ .Build.Status }}**
Build: [{{ .Repo.Owner }}/{{ .Repo.Name }}]({{ .Build.Link }}){{ if .Build.Branch }} ({{ .Build.Branch }}){{ end }} by {{ .Commit.Author }}
Message: {{ .Commit.Message.Title }}" - username: - from_secret: matrix_username - when: - status: - - success - - failure - -trigger: - ref: - - refs/heads/main - - refs/tags/** - status: - - success - - failure - -depends_on: - - test - - build - - docs diff --git a/.github/settings.yml b/.github/settings.yml index 16f389c..95b0f94 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -52,7 +52,9 @@ branches: required_status_checks: strict: false contexts: - - continuous-integration/drone/pr - enforce_admins: true + - ci/woodpecker/pr/test + - ci/woodpecker/pr/build-package + - ci/woodpecker/pr/docs + enforce_admins: false required_linear_history: true restrictions: null diff --git a/.prettierignore b/.prettierignore index 00a65d8..60d3cbf 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,3 @@ -.drone.yml _normalize.css list.json.json /.lighthouseci/ diff --git a/.tarignore b/.tarignore index 917c4b2..a3cc03c 100644 --- a/.tarignore +++ b/.tarignore @@ -3,7 +3,7 @@ .tarignore .dictionary* .git* -.drone* +.woodpecker* .lighthouse* .markdownlint* .jsbeautify* diff --git a/.woodpecker/build-package.yml b/.woodpecker/build-package.yml new file mode 100644 index 0000000..4c19b36 --- /dev/null +++ b/.woodpecker/build-package.yml @@ -0,0 +1,63 @@ +--- +when: + - event: [pull_request, tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + +steps: + assets: + image: docker.io/library/node:lts + commands: + - git fetch -tq + - npm install > /dev/null + - npm run build + - cat VERSION + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + package: + image: docker.io/library/node:lts + commands: + - npm run pack + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + checksum: + image: quay.io/thegeeklab/alpine-tools + commands: + - cd dist/ && sha256sum * > ../sha256sum.txt + + changelog-generate: + image: quay.io/thegeeklab/git-chglog + commands: + - git fetch -tq + - git-chglog --no-color --no-emoji -o CHANGELOG.md ${CI_COMMIT_TAG:---next-tag unreleased unreleased} + + changelog-format: + image: quay.io/thegeeklab/alpine-tools + commands: + - prettier CHANGELOG.md + - prettier -w CHANGELOG.md + + changelog: + image: thegeeklab/git-chglog + + publish-github: + image: docker.io/plugins/github-release + settings: + api_key: + from_secret: github_token + files: + - dist/* + - sha256sum.txt + note: CHANGELOG.md + overwrite: true + title: ${CI_COMMIT_TAG} + when: + - event: [tag] + +depends_on: + - test diff --git a/.woodpecker/docs.yml b/.woodpecker/docs.yml new file mode 100644 index 0000000..6f61e67 --- /dev/null +++ b/.woodpecker/docs.yml @@ -0,0 +1,81 @@ +--- +when: + - event: [pull_request, tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + +steps: + markdownlint: + image: quay.io/thegeeklab/markdownlint-cli + commands: + - markdownlint 'exampleSite/content/**/*.md' 'README.md' 'CONTRIBUTING.md' + + spellcheck: + image: quay.io/thegeeklab/alpine-tools + commands: + - spellchecker --files 'exampleSite/content/**/*.md' 'README.md' -d .dictionary -p spell indefinite-article syntax-urls frontmatter --frontmatter-keys title + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + assets: + image: docker.io/library/node:lts + commands: + - npm install > /dev/null + - npm run svg-sprite-list + - mkdir -p exampleSite/themes/${CI_REPO_NAME} + - curl -sSL https://github.com/${CI_REPO}/releases/latest/download/${CI_REPO_NAME}.tar.gz | tar -xz -C exampleSite/themes/${CI_REPO_NAME}/ --strip-components=1 + when: + - event: [tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + + assets-main: + image: docker.io/library/node:lts + commands: + - npm install > /dev/null + - npm run build + - npm run svg-sprite-list + - mkdir -p exampleSite/themes/ && ln -s $(pwd)/ exampleSite/themes/${CI_REPO_NAME} + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + when: + - event: [pull_request] + + build: + image: quay.io/thegeeklab/hugo:0.115.2 + commands: + - hugo --panicOnWarning -s exampleSite/ + + beautify: + image: quay.io/thegeeklab/alpine-tools + commands: + - html-beautify -r -f 'exampleSite/public/**/*.html' + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + publish: + image: quay.io/thegeeklab/wp-s3-action + settings: + access_key: + from_secret: s3_access_key + bucket: geekdocs-root + delete: true + endpoint: https://sp.rknet.org + path_style: true + secret_key: + from_secret: s3_secret_access_key + source: exampleSite/public/ + strip_prefix: exampleSite/public/ + when: + - event: [tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + +depends_on: + - build-package diff --git a/.woodpecker/notify.yml b/.woodpecker/notify.yml new file mode 100644 index 0000000..a851904 --- /dev/null +++ b/.woodpecker/notify.yml @@ -0,0 +1,26 @@ +--- +when: + - event: [tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + +runs_on: [success, failure] + +steps: + matrix: + image: quay.io/thegeeklab/wp-matrix + settings: + homeserver: + from_secret: matrix_homeserver + password: + from_secret: matrix_password + roomid: + from_secret: matrix_roomid + username: + from_secret: matrix_username + when: + - status: [success, failure] + +depends_on: + - docs diff --git a/.woodpecker/test.yml b/.woodpecker/test.yml new file mode 100644 index 0000000..7061f7a --- /dev/null +++ b/.woodpecker/test.yml @@ -0,0 +1,51 @@ +--- +when: + - event: [pull_request, tag] + - event: [push, manual] + branch: + - ${CI_REPO_DEFAULT_BRANCH} + +steps: + eslint: + image: docker.io/library/node:lts + commands: + - npm install > /dev/null + - npm run lint + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + assets: + image: docker.io/library/node:lts + commands: + - npm install > /dev/null + - npm run build + environment: + FORCE_COLOR: "true" + NPM_CONFIG_LOGLEVEL: error + + testbuild: + image: quay.io/thegeeklab/hugo:0.115.2 + commands: + - mkdir -p exampleSite/themes/ && ln -s $(pwd)/ exampleSite/themes/${CI_REPO_NAME} + - hugo --panicOnWarning -s exampleSite/ -b http://localhost:8000/ + + html-validation: + image: quay.io/thegeeklab/vnu + commands: + - vnu --skip-non-html --also-check-css --errors-only --filterfile .vnuignore exampleSite/public + + link-validation: + image: quay.io/thegeeklab/link-validator + commands: + - link-validator --color=always --rate-limit 10 -e https://github.com/thegeeklab/${CI_REPO_NAME}/edit/main/.* -e https://unsplash.com.* + environment: + LINK_VALIDATOR_BASE_DIR: exampleSite/public + LINK_VALIDATOR_RETRIES: "3" + + page-validation: + image: quay.io/thegeeklab/lhci:0.11 + commands: + - lhci autorun + environment: + LHCI_SERVER_URL: https://drone-artifact.rknet.org/${CI_REPO_NAME}/ diff --git a/README.md b/README.md index 3c0ca6a..99358d8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Geekdoc -[![Build Status](https://img.shields.io/drone/build/thegeeklab/hugo-geekdoc?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/hugo-geekdoc) +[![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/hugo-geekdoc/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/hugo-geekdoc) [![Hugo Version](https://img.shields.io/badge/hugo-0.112-blue.svg)](https://gohugo.io) [![GitHub release](https://img.shields.io/github/v/release/thegeeklab/hugo-geekdoc)](https://github.com/thegeeklab/hugo-geekdoc/releases/latest) [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/hugo-geekdoc)](https://github.com/thegeeklab/hugo-geekdoc/graphs/contributors) diff --git a/exampleSite/content/en/_index.md b/exampleSite/content/en/_index.md index febb5db..20682f1 100644 --- a/exampleSite/content/en/_index.md +++ b/exampleSite/content/en/_index.md @@ -8,7 +8,7 @@ geekdocAnchor: false -[![Build Status](https://img.shields.io/drone/build/thegeeklab/hugo-geekdoc?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/hugo-geekdoc) +[![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/hugo-geekdoc/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/hugo-geekdoc) [![Hugo Version](https://img.shields.io/badge/hugo-0.112-blue.svg)](https://gohugo.io) [![GitHub release](https://img.shields.io/github/v/release/thegeeklab/hugo-geekdoc)](https://github.com/thegeeklab/hugo-geekdoc/releases/latest) [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/hugo-geekdoc)](https://github.com/thegeeklab/hugo-geekdoc/graphs/contributors)