Compare commits

...

4 Commits

Author SHA1 Message Date
Jesse_Chen 88cdb6e6a0 Use runner-native artifact upload action
Staging Backend Quality Gate / validate (pull_request) Successful in 11m51s
Staging Backend Quality Gate / publish (pull_request) Has been skipped
2026-08-05 23:17:56 +08:00
jesse b4d5115676 Merge pull request 'Keep ACR auth through immutable manifest capture' (#4) from codex/fix-gitea-manifest-auth-20260805 into main
Staging Backend Quality Gate / validate (push) Successful in 16m16s
Staging Backend Quality Gate / publish (push) Failing after 4m14s
2026-08-05 22:49:45 +08:00
Jesse_Chen 7d818d5e51 Keep registry auth through manifest capture
Staging Backend Quality Gate / validate (pull_request) Successful in 15m59s
Staging Backend Quality Gate / publish (pull_request) Has been skipped
2026-08-05 20:00:41 +08:00
jesse 7e44bce852 Merge pull request 'Merge GitHub upstream into Gitea primary' (#3) from codex/integrate-github-main-gitea-20260805 into main
Staging Backend Quality Gate / validate (push) Successful in 13m21s
Staging Backend Quality Gate / publish (push) Failing after 1h13m44s
2026-08-05 17:48:22 +08:00
2 changed files with 13 additions and 4 deletions
+5 -3
View File
@@ -244,8 +244,6 @@ jobs:
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
set -euo pipefail
cleanup() { docker logout "$REGISTRY_HOST" >/dev/null 2>&1 || true; }
trap cleanup EXIT
printf '%s' "$REGISTRY_PASSWORD" | docker login "$REGISTRY_HOST" --username "$REGISTRY_USERNAME" --password-stdin
docker build -f deploy/railway-api.Dockerfile -t "$IMAGE_REPOSITORY:api-$GITEA_SHA" .
docker build -f deploy/railway-web.Dockerfile -t "$IMAGE_REPOSITORY:web-$GITEA_SHA" .
@@ -271,9 +269,13 @@ jobs:
artifacts/staging-images/manifest.env "$GITEA_SHA" "$IMAGE_REPOSITORY" >/dev/null
- name: Upload immutable staging image manifest
uses: https://gitea.com/actions/upload-artifact@v4
uses: actions/upload-artifact@v4
with:
name: staging-image-manifest-${{ gitea.sha }}-${{ gitea.run_attempt }}
path: artifacts/staging-images/manifest.env
if-no-files-found: error
retention-days: 30
- name: Logout ACR registry
if: always()
run: docker logout "$REGISTRY_HOST" >/dev/null 2>&1 || true
@@ -201,8 +201,15 @@ test("Gitea quality gate validates before publishing an immutable ACR manifest",
assert.match(workflow, /get\("os"\)=="linux"/);
assert.match(workflow, /get\("architecture"\)=="amd64"/);
assert.match(workflow, /node frontend\/scripts\/staging-image-manifest\.mjs/);
assert.match(workflow, /uses: https:\/\/gitea\.com\/actions\/upload-artifact@v4/);
assert.match(workflow, /uses: actions\/upload-artifact@v4/);
assert.match(workflow, /name: staging-image-manifest-\$\{\{ gitea\.sha \}\}-\$\{\{ gitea\.run_attempt \}\}/);
assertOrder(workflow, [
"docker login",
"Record immutable linux-amd64 image manifest",
"Upload immutable staging image manifest",
"Logout ACR registry",
]);
assert.match(workflow, /Logout ACR registry\n\s+if: always\(\)/);
assert.match(workflow, /\[\[ "\$GITEA_RUN_ATTEMPT" =~ \^\[0-9\]\+\$ \]\]/);
assert.doesNotMatch(workflow, /STAGING_SSH_PRIVATE_KEY|run-staging-deploy\.sh|curl[^\n]+STAGING_URL/);
assert.doesNotMatch(workflow, /(?:^|:)latest$/m);