name: Build and Release on Tag on: push: branches: - main jobs: build-and-publish: runs-on: ubuntu-latest steps: # Checkout repository - name: Checkout repository uses: actions/checkout@v3 - name: Extract Version id: extract_version run: | version=$(python3 -c "import version; print(version.__version__)") echo "VERSION=$version" >> $GITHUB_ENV # Set up Docker - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # Log in to GHCR - name: Log in to GHCR uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} # Build and push Docker image to GHCR with version tag - name: Build and Push Docker Image uses: docker/build-push-action@v4 with: context: . push: true tags: ghcr.io/${{ github.repository }}:${{ env.VERSION }} # Create a release on GitHub - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: ${{ env.VERSION }} name: Release ${{ env.VERSION }} generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}