78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: ci
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     tags:
 | |
|       - 'gh-v*.*.*'
 | |
| 
 | |
| jobs:
 | |
|   docker:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Prepare
 | |
|         id: prep
 | |
|         run: |
 | |
|           if [[ $GITHUB_REF == refs/tags/* ]]; then
 | |
|             VERSION=${GITHUB_REF#refs/tags/}
 | |
|             if [[ $VERSION =~ ^gh-v([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$ ]]; then
 | |
|                MAJOR="${BASH_REMATCH[1]}"
 | |
|                MINOR="${BASH_REMATCH[2]}"
 | |
|                PATCH="${BASH_REMATCH[3]}"
 | |
| 
 | |
|                TAGS="${{ secrets.DOCKER_IMAGE }}:latest"
 | |
|                TAGS="${TAGS},${{ secrets.DOCKER_IMAGE }}:${MAJOR}"
 | |
|                TAGS="${TAGS},${{ secrets.DOCKER_IMAGE }}:${MAJOR}.${MINOR}"
 | |
|                TAGS="${TAGS},${{ secrets.DOCKER_IMAGE }}:${MAJOR}.${MINOR}.${PATCH}"
 | |
|             else
 | |
|                TAGS="${{ secrets.DOCKER_IMAGE }}:${VERSION}"
 | |
|             fi
 | |
|           elif [[ $GITHUB_REF == refs/heads/* ]]; then
 | |
|             VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
 | |
|             if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then
 | |
|               VERSION=edge
 | |
|             fi
 | |
|             TAGS="${{ secrets.DOCKER_IMAGE }}:${VERSION}"
 | |
|           elif [[ $GITHUB_REF == refs/pull/* ]]; then
 | |
|             TAGS="${{ secrets.DOCKER_IMAGE }}:pr-${{ github.event.number }}"
 | |
|           fi
 | |
|           echo ::set-output name=tags::${TAGS}
 | |
|           echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')          
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|       -
 | |
|         name: Login to the container registry
 | |
|         if: github.event_name != 'pull_request'
 | |
|         uses: docker/login-action@v1
 | |
|         with:
 | |
|           registry: quay.io
 | |
|           username: ${{ secrets.REGISTRY_USERNAME }}
 | |
|           password: ${{ secrets.REGISTRY_TOKEN }}
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: docker/build-push-action@v2
 | |
|         with:
 | |
|           context: .
 | |
|           file: ./Dockerfile.multiarch
 | |
|           platforms: linux/amd64,linux/arm/v7,linux/arm64
 | |
|           push: ${{ github.event_name != 'pull_request' }}
 | |
|           tags: ${{ steps.prep.outputs.tags }}
 | |
|           build-args: |
 | |
|             APP_FOLDER=/go/src/github.com/${{ github.repository }}            
 | |
|           labels: |
 | |
|             org.opencontainers.image.title=${{ github.event.repository.name }}
 | |
|             org.opencontainers.image.description=${{ github.event.repository.description }}
 | |
|             org.opencontainers.image.url=${{ github.event.repository.html_url }}
 | |
|             org.opencontainers.image.source=${{ github.event.repository.clone_url }}
 | |
|             org.opencontainers.image.created=${{ steps.prep.outputs.created }}
 | |
|             org.opencontainers.image.revision=${{ github.sha }}
 | |
|             org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}            
 |