mirror of
https://github.com/thegeeklab/hugo-geekblog.git
synced 2024-11-21 12:40:39 +00:00
ci: migrate to woodpecker (#430)
This commit is contained in:
parent
1b206a7913
commit
2488f30564
253
.drone.yml
253
.drone.yml
@ -1,253 +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-geekblog
|
|
||||||
- hugo --panicOnWarning -s exampleSite/ -b http://localhost:8000/ -e ci
|
|
||||||
|
|
||||||
- name: html-validation
|
|
||||||
image: thegeeklab/vnu
|
|
||||||
commands:
|
|
||||||
- vnu --skip-non-html --also-check-css --errors-only exampleSite/public
|
|
||||||
|
|
||||||
- name: link-validation
|
|
||||||
image: thegeeklab/link-validator
|
|
||||||
commands:
|
|
||||||
- link-validator --color=always --rate-limit 10 -e https://github.com/thegeeklab/hugo-geekblog/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-geekblog/
|
|
||||||
- curl -sSL https://github.com/thegeeklab/hugo-geekblog/releases/latest/download/hugo-geekblog.tar.gz | tar -xz -C exampleSite/themes/hugo-geekblog/ --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-geekblog
|
|
||||||
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
|
|
||||||
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/
|
|
||||||
target: /${DRONE_REPO_NAME}
|
|
||||||
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 }}**<br/> Build: [{{ .Repo.Owner }}/{{ .Repo.Name }}]({{ .Build.Link }}){{ if .Build.Branch }} ({{ .Build.Branch }}){{ end }} by {{ .Commit.Author }}<br/> 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
|
|
6
.github/settings.yml
vendored
6
.github/settings.yml
vendored
@ -52,7 +52,9 @@ branches:
|
|||||||
required_status_checks:
|
required_status_checks:
|
||||||
strict: false
|
strict: false
|
||||||
contexts:
|
contexts:
|
||||||
- continuous-integration/drone/pr
|
- ci/woodpecker/pr/test
|
||||||
enforce_admins: true
|
- ci/woodpecker/pr/build-package
|
||||||
|
- ci/woodpecker/pr/docs
|
||||||
|
enforce_admins: false
|
||||||
required_linear_history: true
|
required_linear_history: true
|
||||||
restrictions: null
|
restrictions: null
|
||||||
|
@ -9,13 +9,18 @@ ci:
|
|||||||
- http://localhost/posts/usage/getting-started/
|
- http://localhost/posts/usage/getting-started/
|
||||||
settings:
|
settings:
|
||||||
chromeFlags: "--no-sandbox"
|
chromeFlags: "--no-sandbox"
|
||||||
|
onlyCategories: ['performance', 'accessibility', 'best-practices', 'seo']
|
||||||
|
skipAudits: ["color-contrast", "uses-long-cache-ttl", "csp-xss", "bf-cache", "is-crawlable", "image-size-responsive"]
|
||||||
assert:
|
assert:
|
||||||
preset: "lighthouse:no-pwa"
|
preset: "lighthouse:no-pwa"
|
||||||
assertions:
|
assertions:
|
||||||
|
color-contrast: off
|
||||||
uses-long-cache-ttl: off
|
uses-long-cache-ttl: off
|
||||||
csp-xss: off
|
csp-xss: off
|
||||||
# FIXME: https://github.com/GoogleChrome/lighthouse/issues/14957
|
# FIXME: https://github.com/GoogleChrome/lighthouse/issues/14957
|
||||||
bf-cache: off
|
bf-cache: off
|
||||||
|
is-crawlable: off
|
||||||
|
image-size-responsive: off
|
||||||
tap-targets: warn
|
tap-targets: warn
|
||||||
unsized-images: warn
|
unsized-images: warn
|
||||||
# FIXME: https://github.com/GoogleChrome/lighthouse/issues/11460
|
# FIXME: https://github.com/GoogleChrome/lighthouse/issues/11460
|
||||||
|
0
.vnuignore
Normal file
0
.vnuignore
Normal file
60
.woodpecker/build-package.yml
Normal file
60
.woodpecker/build-package.yml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
82
.woodpecker/docs.yml
Normal file
82
.woodpecker/docs.yml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
|
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/
|
||||||
|
target: /${CI_REPO_NAME}
|
||||||
|
when:
|
||||||
|
- event: [tag]
|
||||||
|
- event: [push, manual]
|
||||||
|
branch:
|
||||||
|
- ${CI_REPO_DEFAULT_BRANCH}
|
||||||
|
|
||||||
|
depends_on:
|
||||||
|
- build-package
|
26
.woodpecker/notify.yml
Normal file
26
.woodpecker/notify.yml
Normal file
@ -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
|
54
.woodpecker/test.yml
Normal file
54
.woodpecker/test.yml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
|
group: test
|
||||||
|
commands:
|
||||||
|
- vnu --skip-non-html --also-check-css --errors-only --filterfile .vnuignore exampleSite/public
|
||||||
|
|
||||||
|
link-validation:
|
||||||
|
image: quay.io/thegeeklab/link-validator
|
||||||
|
group: test
|
||||||
|
commands:
|
||||||
|
- link-validator --color=always --rate-limit 10 --timeout 60 -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.12
|
||||||
|
group: test
|
||||||
|
commands:
|
||||||
|
- lhci autorun
|
||||||
|
environment:
|
||||||
|
LHCI_SERVER_URL: https://drone-artifact.rknet.org/${CI_REPO_NAME}/
|
1
hugo-geekblog
Symbolic link
1
hugo-geekblog
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/home/rknet/rkau2905/Devel/private/hugo/hugo-geekblog/
|
Loading…
Reference in New Issue
Block a user