feat: add back to top button #765
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Validate PRs | |
on: | |
pull_request: | |
branches: [ main ] | |
jobs: | |
go: | |
name: Check sources | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, windows-latest, ubuntu-latest] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
- name: Setup Go | |
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 | |
with: | |
go-version-file: 'go.mod' | |
- name: Check go.mod | |
shell: bash | |
run: | | |
go mod tidy | |
if ! git diff --quiet; then | |
echo "Go modules need tidying (go mod tidy)" | |
exit 1 | |
fi | |
- name: Check format | |
shell: bash | |
run: | | |
go fmt ./... | |
if ! git diff --quiet; then | |
echo "Files are not formatted (go fmt ./...)" | |
exit 1 | |
fi | |
- name: Check license headers | |
shell: bash | |
run: | | |
go install github.com/google/addlicense@latest | |
if ! addlicense --check -s -l apache -c "The KitOps Authors." $(find . -name '*.go'); then | |
echo "License headers missing from Go files (see above)." | |
echo "Install addlicense via 'go install github.com/google/addlicense@latest'" | |
echo "And run 'addlicense -s -l apache -c \"The KitOps Authors.\" \$(find . -name '*.go')'" | |
exit 1 | |
fi | |
- name: Install Node.js | |
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4 | |
with: | |
node-version-file: './frontend/dev-mode/.nvmrc' | |
- name: Install pnpm | |
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 | |
with: | |
version: 8.0.0 | |
- name: Generate embeds | |
run: | | |
go generate ./... | |
- name: Check build | |
shell: bash | |
run: | | |
if ! go build -o kit; then | |
echo "Project does not build" | |
exit 1 | |
fi | |
- name: Run tests | |
shell: bash | |
run: | | |
if ! go test ./... -v; then | |
echo "Project tests failed" | |
exit 1 | |
fi | |
- name: Test Vitepress includes | |
shell: bash | |
run: | | |
grep -rnw '@include' --exclude-dir docs/node_modules docs | while read -r line; do | |
file="${line%%:*}" | |
include="${line##*@include: }" | |
include="${include%%-->}" | |
expected="$(dirname "$file")/$include" | |
if [ ! -f "$expected" ]; then | |
echo "Broken include in $file: path $expected does exist" | |
exit 1 | |
fi | |
done | |
- name: Check for trailing whitespace | |
shell: bash | |
run: | | |
files=$(grep -E -lI --exclude '*.svg' --exclude 'docs/*' --exclude 'frontend/*' " +$" $(git ls-files) || true) | |
if [ ! -z $files ]; then | |
echo "Trailing whitespace in files:" | |
echo "$files" | |
exit 1 | |
fi | |
- name: Upload build artifacts | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 | |
with: | |
name: pr-artifacts-${{ matrix.os }} | |
retention-days: 3 | |
path: | | |
./kit* |