From 1cbadd304220383c3f1df23fca19db7cb102b4ae Mon Sep 17 00:00:00 2001 From: Brian Bicknell Date: Mon, 9 Mar 2026 01:13:52 -0400 Subject: [PATCH] Updated CI to publish-images on push to default branch. --- .gitea/workflows/ci.yml | 75 +++++++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 26 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index e4f6881..73749ee 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -48,7 +48,8 @@ jobs: - run: dotnet test --configuration Release --no-build --logger "trx;LogFileName=test-results.trx" publish-image: - if: ${{ false }} # disabled for now + if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch) + needs: build-test runs-on: [self-hosted, linux, x64, docker] container: image: ghcr.io/catthehacker/ubuntu:act-latest @@ -56,33 +57,55 @@ jobs: --privileged env: REGISTRY: ${{ secrets.REGISTRY_HOST }} - OWNER_REPO: ${{ github.repository }} - DOCKERFILE: JSMR.Api/Dockerfile - CONTEXT: . steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - - name: Normalize image name (lowercase) - id: names - run: | - IMAGE_LC="$(echo "${REGISTRY}/${OWNER_REPO}" | tr '[:upper:]' '[:lower:]')" - echo "image=${IMAGE_LC}" >> "$GITHUB_OUTPUT" + - name: Set image variables + id: vars + shell: bash + run: | + OWNER_LC="$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')" + SHA_SHORT="$(echo "${{ github.sha }}" | cut -c1-7)" + echo "owner_lc=$OWNER_LC" >> "$GITHUB_OUTPUT" + echo "sha_short=$SHA_SHORT" >> "$GITHUB_OUTPUT" - - name: Docker login - run: | - echo "${{ secrets.REGISTRY_PASSWORD }}" \ - | docker login "${{ env.REGISTRY }}" \ - -u "${{ secrets.REGISTRY_USER }}" \ - --password-stdin + - name: Docker login + shell: bash + run: | + echo "${{ secrets.REGISTRY_PASSWORD }}" \ + | docker login "${{ env.REGISTRY }}" \ + -u "${{ secrets.REGISTRY_USER }}" \ + --password-stdin - - name: Enable BuildKit - run: echo "DOCKER_BUILDKIT=1" >> $GITHUB_ENV - - - name: Build - run: docker build -f "$DOCKERFILE" -t "${{ steps.names.outputs.image }}:${{ github.sha }}" "$CONTEXT" + - name: Enable BuildKit + run: echo "DOCKER_BUILDKIT=1" >> $GITHUB_ENV - - name: Push - run: | - docker push "${{ steps.names.outputs.image }}:${{ github.sha }}" - docker tag "${{ steps.names.outputs.image }}:${{ github.sha }}" "${{ steps.names.outputs.image }}:latest" - docker push "${{ steps.names.outputs.image }}:latest" \ No newline at end of file + - name: Build API image + shell: bash + run: | + docker build \ + -f JSMR.Api/Dockerfile \ + -t "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-api:${{ steps.vars.outputs.sha_short }}" \ + -t "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-api:main" \ + . + + - name: Push API image + shell: bash + run: | + docker push "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-api:${{ steps.vars.outputs.sha_short }}" + docker push "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-api:main" + + - name: Build Web image + shell: bash + run: | + docker build \ + -f JSMR.UI.Blazor/Dockerfile \ + -t "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-web:${{ steps.vars.outputs.sha_short }}" \ + -t "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-web:main" \ + . + + - name: Push Web image + shell: bash + run: | + docker push "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-web:${{ steps.vars.outputs.sha_short }}" + docker push "${{ env.REGISTRY }}/${{ steps.vars.outputs.owner_lc }}/jsmr-web:main" \ No newline at end of file