name: Build and Push App Image on: push: branches: - main - master tags: - "v*" workflow_dispatch: env: # Example: registry.example.com/your-user/noteapp IMAGE_NAME: ${{ secrets.REGISTRY_IMAGE }} jobs: build-and-push: runs-on: ubuntu-docker container: docker:dind steps: - name: install nodejs run: apk add --update nodejs npm - name: Checkout uses: actions/checkout@v4 - name: Set image tags id: vars shell: sh run: | SHORT_SHA=$(printf '%s' "$GITHUB_SHA" | cut -c1-7) BRANCH=$(printf '%s' "$GITHUB_REF_NAME" | tr '/' '-') echo "short_sha=${SHORT_SHA}" >> "$GITHUB_OUTPUT" echo "branch=${BRANCH}" >> "$GITHUB_OUTPUT" - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Login to Gitea Container Registry uses: docker/login-action@v3 with: registry: ${{ secrets.REGISTRY_HOST }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: Build and push app image uses: docker/build-push-action@v6 with: context: . file: ./devops/docker/Dockerfile push: true tags: | ${{ env.IMAGE_NAME }}:latest ${{ env.IMAGE_NAME }}:${{ steps.vars.outputs.short_sha }} ${{ env.IMAGE_NAME }}:${{ steps.vars.outputs.branch }}