58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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 }}
 | 
						|
          generateReleaseNotes: true
 | 
						|
 | 
						|
  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 \
 | 
						|
          --build-arg "version=${{ needs.release.outputs.new_tag }}" \
 | 
						|
          --tag ghcr.io/luketainton/webexmemebot:${{ needs.release.outputs.new_tag }} \
 | 
						|
          --tag ghcr.io/luketainton/webexmemebot:latest
 | 
						|
      - name: Push image to GitHub Package Registry
 | 
						|
        run: |
 | 
						|
          docker push ghcr.io/luketainton/webexmemebot:latest
 | 
						|
          docker push ghcr.io/luketainton/webexmemebot:${{ 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"
 |