name: Docker Image Build and Push on: push: branches: - main - 'release/*' jobs: build_and_push_docker_image: runs-on: [ "docker://docker" ] steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image run: | docker build --build-arg VERSION=${GITHUB_REF_NAME} -t registry.example.com/${GITHUB_REPOSITORY}:${GITHUB_SHA} . docker push registry.example.com/${GITHUB_REPOSITORY}:${GITHUB_SHA} - name: Tag latest image if: github.ref == 'refs/heads/main' run: | docker tag registry.example.com/${GITHUB_REPOSITORY}:${GITHUB_SHA} registry.example.com/${GITHUB_REPOSITORY}:latest docker push registry.example.com/${GITHUB_REPOSITORY}:latest