From 1093499b69ed4e3a0aab28b97d66b6715b4187ee Mon Sep 17 00:00:00 2001 From: rock Date: Mon, 7 Sep 2026 13:08:43 -0700 Subject: [PATCH] ci: single job, add workflow_dispatch, install node+docker once --- .gitea/workflows/build.yaml | 49 ++++++++++++++----------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index 155976b..c61e90a 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -2,37 +2,18 @@ name: CI on: push: - branches: - - main + branches: [main] pull_request: - branches: - - main + branches: [main] + workflow_dispatch: env: REGISTRY: forgejo.riotpiao.com IMAGE: forgejo.riotpiao.com/rock/poimen-memory jobs: - test: - name: Test - runs-on: rust - steps: - - name: Install Node.js for actions runtime - run: apt-get update && apt-get install -y nodejs - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Cargo test - run: cargo test -p mem-ingest --lib 2>&1 | tail -50 || true - - - name: Cargo check - run: cargo check -p mem-ingest 2>&1 | tail -20 || true - - build-push: - name: Build & Push Image - needs: test - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + ci: + name: CI runs-on: rust steps: - name: Install Node.js and Docker @@ -43,13 +24,19 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Cargo test + run: cargo test -p mem-ingest --lib 2>&1 | tail -50 || true + + - name: Cargo check + run: cargo check -p mem-ingest 2>&1 | tail -20 || true + - name: Get short SHA + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' id: sha - run: | - SHORT_SHA=$(git rev-parse --short HEAD) - echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT + run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Registry login + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" \ --username "${REGISTRY_USER}" --password-stdin @@ -58,18 +45,20 @@ jobs: REGISTRY_TOKEN: ${{ secrets.FORGEJO_REGISTRY_TOKEN }} - name: Build Docker image + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | docker build --no-cache \ -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ -t "${IMAGE}:latest" \ - -f Dockerfile \ - . + -f Dockerfile . - name: Push Docker image + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" docker push "${IMAGE}:latest" - echo "✓ Image pushed: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" + echo "✓ Pushed: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" - name: Prune unused images + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: docker image prune -a --force 2>&1 | tail -3 || true