name: Release on: push: branches: - master jobs: release-please: name: Run release-please runs-on: ubuntu-latest outputs: release_created: ${{ steps.release.outputs.release_created }} tag_name: ${{ steps.release.outputs.tag_name }} steps: - name: Checkout repository uses: actions/checkout@v2 - name: Setup release please uses: google-github-actions/release-please-action@v2 id: release with: token: ${{ secrets.GITHUB_TOKEN }} release-type: simple changelog-path: CHANGELOG.md package-name: gonic build-tag-publish: name: Build, tag, and publish Docker image if: ${{ needs.release-please.outputs.release_created }} needs: release-please runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Update version.go run: sed -Ei 's/VERSION = "v0.0.0"/VERSION = "${{ needs.release-please.outputs.tag_name }}"/g' version/version.go - name: Login into GitHub Container Registry run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin - name: Build Docker image if: ${{ needs.release-please.outputs.release_created }} run: | docker build \ -t "ghcr.io/${GITHUB_REPOSITORY}:${{ needs.release-please.outputs.tag_name }}" \ -t "ghcr.io/${GITHUB_REPOSITORY}:latest" . - name: Release Docker image run: | docker push "ghcr.io/${GITHUB_REPOSITORY}:${{ needs.release-please.outputs.tag_name }}" docker push "ghcr.io/${GITHUB_REPOSITORY}:latest"