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"
 |