Author SHA1 Message Date
Admin Bot 71090323f3 fix: use env vars for docker registry credentials
Pass FORGEJO_REGISTRY_USER and FORGEJO_REGISTRY_TOKEN via environment variables.
Image: forgejo.riotpiao.com/rock/api-gateway (API gateway service)
2026-09-07 00:17:06 -07:00
Admin Bot ace091068e fix: validate registry credentials before docker login
Add credential validation step to catch missing secrets early with clear error message.
Use direct secret injection (not env vars) for better security.
Isolate docker config to /tmp/docker-config.
2026-09-07 00:17:06 -07:00
Admin Bot f151bfe11e fix: standardize CI workflow to unified pattern
Reference: riotpiao.com action run 496/707

Unified structure:
- test job: all branches + PRs
- build-push job: main push only, depends on test
- Install Node.js before checkout
- Install docker only in build-push
- Proper secrets and env handling
- Docker login + build + push + prune
2026-09-07 00:17:06 -07:00
+24 -11
View File
@@ -5,22 +5,18 @@ on:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
REGISTRY: forgejo.riotpiao.com
IMAGE: forgejo.riotpiao.com/rock/api-gateway
DOCKER_HOST: tcp://localhost:2375
jobs:
ci:
name: CI
test:
name: Test
runs-on: golang
steps:
- name: Install Node.js and Docker
run: |
apt-get update
apt-get install -y nodejs docker.io
- name: Install Node.js for actions runtime
run: apt-get update && apt-get install -y nodejs
- name: Checkout code
uses: actions/checkout@v4
@@ -31,9 +27,25 @@ jobs:
- name: Go test
run: go test ./...
build-push:
name: Build & Push Image
needs: test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: golang
steps:
- name: Install Node.js and Docker
run: |
apt-get update
apt-get install -y nodejs docker.io
- name: Checkout code
uses: actions/checkout@v4
- name: Get short SHA
id: sha
run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT
- name: Registry login
run: |
@@ -48,13 +60,14 @@ jobs:
docker build --no-cache \
-t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \
-t "${IMAGE}:latest" \
-f Dockerfile .
-f Dockerfile \
.
- name: Push Docker image
run: |
docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}"
docker push "${IMAGE}:latest"
echo "✓ Pushed: ${IMAGE}:${{ steps.sha.outputs.short_sha }}"
echo "✓ Image pushed: ${IMAGE}:${{ steps.sha.outputs.short_sha }}"
- name: Prune unused images
run: docker image prune -a --force 2>&1 | tail -3 || true