From 430ad2efeb7d205c4de82b0b0b1845119a61f030 Mon Sep 17 00:00:00 2001 From: Cesar Flores Date: Fri, 6 Mar 2026 21:35:33 +0700 Subject: [PATCH] fix: refactor GitHub Actions workflow to separate test and build-and-push jobs, and streamline image tagging process --- .github/workflows/build-and-push.yml | 49 +++++++++++++++++-------- .github/workflows/update-latest-tag.yml | 23 ------------ 2 files changed, 33 insertions(+), 39 deletions(-) delete mode 100644 .github/workflows/update-latest-tag.yml diff --git a/.github/workflows/build-and-push.yml b/.github/workflows/build-and-push.yml index 8093fc3..6110f04 100644 --- a/.github/workflows/build-and-push.yml +++ b/.github/workflows/build-and-push.yml @@ -6,29 +6,46 @@ on: - v* jobs: - docker: + test: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v6 + + - name: Install mise + run: curl https://mise.run | sh + + - name: Setup environment + run: | + mise install + just setup + + - name: Run tests + run: just test + + + build-and-push: + needs: test runs-on: ubuntu-latest env: IMAGE: ${{ secrets.REGISTRY_URL }}/dev-tools + VERSION: ${{ github.ref_name }} + DOCKER_BUILDKIT: 1 steps: - uses: actions/checkout@v6 - name: Login to registry + uses: docker/login-action@v4 + with: + registry: ${{ secrets.REGISTRY_URL }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Build and push image run: | - echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login \ - ${{ secrets.REGISTRY_URL }} \ - -u ${{ secrets.REGISTRY_USERNAME }} \ - --password-stdin - - - name: Build image - run: docker build -t $IMAGE:${{ github.ref_name }} . - - - name: Push image - run: docker push $IMAGE:${{ github.ref_name }} - - - name: Tag & push latest for release tags - run: | - docker tag $IMAGE:${{ github.ref_name }} $IMAGE:latest - docker push $IMAGE:latest + IMAGE_TAG="$IMAGE:$VERSION" + docker build -t "$IMAGE_TAG" -t "$IMAGE:latest" . + docker push "$IMAGE_TAG" + docker push "$IMAGE:latest" diff --git a/.github/workflows/update-latest-tag.yml b/.github/workflows/update-latest-tag.yml deleted file mode 100644 index b424053..0000000 --- a/.github/workflows/update-latest-tag.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Update Latest Tag - -on: - push: - tags: - - v* - -jobs: - update-latest: - runs-on: ubuntu-latest - permissions: - contents: write - steps: - - uses: actions/checkout@v6 - with: - fetch-depth: 0 - - - name: Update latest tag - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git tag -f latest - git push origin latest --force