name: Publish Metadata Agent Image on: push: branches: - '**' - '!DEV' tags: - 'v*.*.*' env: REGISTRY: docker.io IMAGE_NAME: ${{ secrets.DOCKERHUB_USERNAME }}/furumi-metadata-agent jobs: build-and-push-image: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Determine version and tags id: info run: | IMAGE="${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}" SHORT_SHA="$(echo '${{ github.sha }}' | cut -c1-7)" if [[ "${{ github.ref }}" == refs/tags/v* ]]; then TAG="${{ github.ref_name }}" VERSION="${TAG#v}" echo "tags=${IMAGE}:${VERSION},${IMAGE}:latest" >> "$GITHUB_OUTPUT" echo "version=${VERSION}" >> "$GITHUB_OUTPUT" else echo "tags=${IMAGE}:trunk,${IMAGE}:${SHORT_SHA}" >> "$GITHUB_OUTPUT" echo "version=${SHORT_SHA}" >> "$GITHUB_OUTPUT" fi - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . file: Dockerfile.agent push: true tags: ${{ steps.info.outputs.tags }} build-args: | FURUMI_VERSION=${{ steps.info.outputs.version }} cache-from: type=gha cache-to: type=gha,mode=max