From cb67c54ac5cb58e7888b2fddc895d10f293d8ed7 Mon Sep 17 00:00:00 2001 From: Xe Iaso Date: Fri, 7 Nov 2025 19:24:38 -0500 Subject: [PATCH] ci: add asset build verification workflow (#1254) * ci: add asset build verification workflow A CI pass that fails if generated files are out of date. * chore: npm run assets Signed-off-by: Xe Iaso --------- Signed-off-by: Xe Iaso --- .github/workflows/asset-verification.yml | 73 +++++++++++++++++++ .../metarefresh/metarefresh_templ.go | 2 +- lib/challenge/preact/preact_templ.go | 2 +- .../proofofwork/proofofwork_templ.go | 2 +- web/index_templ.go | 2 +- 5 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/asset-verification.yml diff --git a/.github/workflows/asset-verification.yml b/.github/workflows/asset-verification.yml new file mode 100644 index 00000000..dbc8153e --- /dev/null +++ b/.github/workflows/asset-verification.yml @@ -0,0 +1,73 @@ +name: Asset Build Verification + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +permissions: + contents: read + +jobs: + asset_verification: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + persist-credentials: false + + - name: build essential + run: | + sudo apt-get update + sudo apt-get install -y build-essential + + - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 + with: + node-version: latest + + - uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 + with: + go-version: stable + + - name: install node deps + run: | + npm ci + + - name: Check for uncommitted changes before asset build + id: check-changes-before + run: | + if [[ -n $(git status --porcelain) ]]; then + echo "has_changes=true" >> $GITHUB_OUTPUT + else + echo "has_changes=false" >> $GITHUB_OUTPUT + fi + + - name: Fail if there are uncommitted changes before build + if: steps.check-changes-before.outputs.has_changes == 'true' + run: | + echo "There are uncommitted changes before running npm run assets" + git status + exit 1 + + - name: Run asset build + run: | + npm run assets + + - name: Check for uncommitted changes after asset build + id: check-changes-after + run: | + if [[ -n $(git status --porcelain) ]]; then + echo "has_changes=true" >> $GITHUB_OUTPUT + else + echo "has_changes=false" >> $GITHUB_OUTPUT + fi + + - name: Fail if assets generated changes + if: steps.check-changes-after.outputs.has_changes == 'true' + run: | + echo "npm run assets generated uncommitted changes. This indicates the repository has outdated generated files." + echo "Please run 'npm run assets' locally and commit the changes." + git status + git diff + exit 1 diff --git a/lib/challenge/metarefresh/metarefresh_templ.go b/lib/challenge/metarefresh/metarefresh_templ.go index f54c45af..59de7dd3 100644 --- a/lib/challenge/metarefresh/metarefresh_templ.go +++ b/lib/challenge/metarefresh/metarefresh_templ.go @@ -1,6 +1,6 @@ // Code generated by templ - DO NOT EDIT. -// templ: version: v0.3.924 +// templ: version: v0.3.960 package metarefresh //lint:file-ignore SA4006 This context is only used if a nested component is present. diff --git a/lib/challenge/preact/preact_templ.go b/lib/challenge/preact/preact_templ.go index aa78c3c6..7afd9ab9 100644 --- a/lib/challenge/preact/preact_templ.go +++ b/lib/challenge/preact/preact_templ.go @@ -1,6 +1,6 @@ // Code generated by templ - DO NOT EDIT. -// templ: version: v0.3.924 +// templ: version: v0.3.960 package preact //lint:file-ignore SA4006 This context is only used if a nested component is present. diff --git a/lib/challenge/proofofwork/proofofwork_templ.go b/lib/challenge/proofofwork/proofofwork_templ.go index 30adf742..bbae45c0 100644 --- a/lib/challenge/proofofwork/proofofwork_templ.go +++ b/lib/challenge/proofofwork/proofofwork_templ.go @@ -1,6 +1,6 @@ // Code generated by templ - DO NOT EDIT. -// templ: version: v0.3.924 +// templ: version: v0.3.960 package proofofwork //lint:file-ignore SA4006 This context is only used if a nested component is present. diff --git a/web/index_templ.go b/web/index_templ.go index b672b301..0442aa04 100644 --- a/web/index_templ.go +++ b/web/index_templ.go @@ -1,6 +1,6 @@ // Code generated by templ - DO NOT EDIT. -// templ: version: v0.3.924 +// templ: version: v0.3.960 package web //lint:file-ignore SA4006 This context is only used if a nested component is present.