chore(ci): downgrade artifact actions v6→v4 and add act local CI config

- Downgrade all actions/upload-artifact and actions/download-artifact from
  v6 to v4 for compatibility with act's local artifact server (v6 uses a
  new Azure blob backend that act doesn't support)
- Add .actrc with arm64 architecture, artifact server, sequential jobs,
  and secret/env file pointers for local act runs
- Add .act-env to .gitignore (contains local node PATH override)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 18:49:33 +00:00
parent 7fbece2af5
commit b6859ab57f
3 changed files with 35 additions and 28 deletions

6
.actrc Normal file
View File

@@ -0,0 +1,6 @@
--artifact-server-path /tmp/act-artifacts
--secret-file .secrets
--env-file .act-env
--container-architecture linux/arm64
-W .github/workflows/gated-pipeline.yml
--concurrent-jobs 1

View File

@@ -3,7 +3,8 @@
"allow": [
"Bash(echo No metabuilder images found:*)",
"Bash(docker compose:*)",
"Bash(git pull:*)"
"Bash(git pull:*)",
"Skill(commit-commands:commit-push-pr)"
]
}
}

View File

@@ -294,7 +294,7 @@ jobs:
echo "$(date -Iseconds)" > gate-artifacts/gate-1/start-time.txt
- name: Upload gate start marker
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-start
path: gate-artifacts/gate-1/
@@ -389,7 +389,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-schema-result
path: gate-artifacts/gate-1/
@@ -423,7 +423,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-typecheck-result
path: gate-artifacts/gate-1/
@@ -468,7 +468,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-lint-result
path: gate-artifacts/gate-1/
@@ -503,7 +503,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-security-result
path: gate-artifacts/gate-1/
@@ -538,7 +538,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-filesize-result
path: gate-artifacts/gate-1/
@@ -575,7 +575,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-complexity-result
path: gate-artifacts/gate-1/
@@ -613,7 +613,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-stub-result
path: gate-artifacts/gate-1/
@@ -624,7 +624,7 @@ jobs:
needs: [schema-check, typecheck, lint, security-scan, file-size-check, code-complexity-check, stub-detection]
steps:
- name: Download all gate 1 artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v4
with:
pattern: gate-1-*
path: gate-artifacts/
@@ -652,7 +652,7 @@ jobs:
ls -la gate-artifacts/gate-1/
- name: Upload consolidated gate 1 report
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-1-complete-report
path: gate-artifacts/
@@ -716,7 +716,7 @@ jobs:
echo "$(date -Iseconds)" > gate-artifacts/gate-2/start-time.txt
- name: Upload gate start marker
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-2-start
path: gate-artifacts/gate-2/
@@ -801,7 +801,7 @@ jobs:
- name: Upload coverage report
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: frontends/nextjs/coverage/
@@ -816,7 +816,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-2-unit-result
path: gate-artifacts/gate-2/
@@ -892,7 +892,7 @@ jobs:
- name: Upload test results
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: playwright-report/
@@ -907,7 +907,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-2-e2e-result
path: gate-artifacts/gate-2/
@@ -940,7 +940,7 @@ jobs:
- name: Upload daemon test report
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: playwright-report-dbal-daemon
path: frontends/nextjs/playwright-report/
@@ -955,7 +955,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-2-dbal-result
path: gate-artifacts/gate-2/
@@ -966,7 +966,7 @@ jobs:
needs: [test-unit, test-e2e, test-dbal-daemon]
steps:
- name: Download all gate 2 artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v4
with:
pattern: gate-2-*
path: gate-artifacts/
@@ -990,7 +990,7 @@ jobs:
ls -la gate-artifacts/gate-2/
- name: Upload consolidated gate 2 report
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-2-complete-report
path: gate-artifacts/
@@ -1016,7 +1016,7 @@ jobs:
echo "$(date -Iseconds)" > gate-artifacts/gate-3/start-time.txt
- name: Upload gate start marker
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-3-start
path: gate-artifacts/gate-3/
@@ -1045,7 +1045,7 @@ jobs:
run: npm run build -w frontends/nextjs
- name: Upload build artifacts
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: dist
path: frontends/nextjs/.next/
@@ -1060,7 +1060,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-3-build-result
path: gate-artifacts/gate-3/
@@ -1103,7 +1103,7 @@ jobs:
- name: Upload validation result
if: always()
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-3-quality-result
path: gate-artifacts/gate-3/
@@ -1115,7 +1115,7 @@ jobs:
if: always() && needs.build.result == 'success' && (needs.quality-check.result == 'success' || needs.quality-check.result == 'skipped')
steps:
- name: Download all gate 3 artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v4
with:
pattern: gate-3-*
path: gate-artifacts/
@@ -1136,7 +1136,7 @@ jobs:
ls -la gate-artifacts/gate-3/
- name: Upload consolidated gate 3 report
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: gate-3-complete-report
path: gate-artifacts/
@@ -2050,7 +2050,7 @@ jobs:
if: always()
steps:
- name: Download all gate artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v4
with:
pattern: gate-*-complete-report
path: all-gate-artifacts/
@@ -2115,7 +2115,7 @@ jobs:
}
- name: Upload complete audit trail
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@v4
with:
name: complete-gate-audit-trail
path: all-gate-artifacts/