name: Build on: push: branches: [main] jobs: release: name: Release runs-on: ubuntu-latest outputs: new_tag: ${{ steps.tag_version.outputs.new_tag }} steps: - uses: actions/checkout@v4 - name: Bump version and push tag id: tag_version uses: mathieudutour/github-tag-action@v6.2 with: github_token: ${{ secrets.GITHUB_TOKEN }} default_bump: minor - name: Create a GitHub release uses: ncipollo/release-action@v1 with: tag: ${{ steps.tag_version.outputs.new_tag }} name: ${{ steps.tag_version.outputs.new_tag }} body: ${{ steps.tag_version.outputs.changelog }} publish: name: GitHub Container Registry runs-on: ubuntu-latest needs: release steps: - uses: actions/checkout@v4 - name: Login to GitHub Container Registry run: echo ${{ secrets.GHCR_ACCESS_TOKEN }} | docker login ghcr.io -u luketainton --password-stdin - name: Build image for GitHub Package Registry run: docker build . --file Dockerfile --tag ghcr.io/luketainton/roboluke-tasks:${{ needs.release.outputs.new_tag }} --tag ghcr.io/luketainton/roboluke-tasks:latest - name: Push image to GitHub Package Registry run: | docker push ghcr.io/luketainton/roboluke-tasks:latest docker push ghcr.io/luketainton/roboluke-tasks:${{ needs.release.outputs.new_tag }} deploy: name: Update Portainer Deployment runs-on: ubuntu-latest needs: publish steps: - uses: fjogeleit/http-request-action@v1 with: url: ${{ secrets.PORTAINER_WEBHOOK_URL }} method: POST timeout: 60000 preventFailureOnNoResponse: "true"