78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
name: Docker Image
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - master
 | 
						|
    tags:
 | 
						|
      - 'v*'
 | 
						|
  pull_request:
 | 
						|
    branches:
 | 
						|
      - 'master'
 | 
						|
 | 
						|
jobs:
 | 
						|
  build-docker:
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    steps:
 | 
						|
      - name: Setup go
 | 
						|
        uses: actions/setup-go@v3
 | 
						|
        with:
 | 
						|
          go-version: '^1'
 | 
						|
      - name: Checkout repository
 | 
						|
        uses: actions/checkout@v3
 | 
						|
        with:
 | 
						|
          fetch-depth: 0
 | 
						|
 | 
						|
      - name: Build binary
 | 
						|
        run : |
 | 
						|
          make build_linux_amd64
 | 
						|
          make build_linux_arm
 | 
						|
          make build_linux_arm64          
 | 
						|
      -
 | 
						|
        name: Set up QEMU
 | 
						|
        uses: docker/setup-qemu-action@v2
 | 
						|
 | 
						|
      -
 | 
						|
        name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@v2
 | 
						|
 | 
						|
      -
 | 
						|
        name: Login to Docker Hub
 | 
						|
        uses: docker/login-action@v2
 | 
						|
        with:
 | 
						|
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
						|
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
						|
 | 
						|
      -
 | 
						|
        name: Login to GitHub Container Registry
 | 
						|
        uses: docker/login-action@v2
 | 
						|
        with:
 | 
						|
          registry: ghcr.io
 | 
						|
          username: ${{ github.repository_owner }}
 | 
						|
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
      -
 | 
						|
        name: Docker meta
 | 
						|
        id: docker-meta
 | 
						|
        uses: docker/metadata-action@v4
 | 
						|
        with:
 | 
						|
          images: |
 | 
						|
            ${{ github.repository }}
 | 
						|
            ghcr.io/${{ github.repository }}            
 | 
						|
          tags: |
 | 
						|
            type=raw,value=latest,enable={{is_default_branch}}
 | 
						|
            type=semver,pattern={{version}}
 | 
						|
            type=semver,pattern={{major}}.{{minor}}
 | 
						|
            type=semver,pattern={{major}}            
 | 
						|
 | 
						|
      -
 | 
						|
        name: Build and push
 | 
						|
        uses: docker/build-push-action@v4
 | 
						|
        with:
 | 
						|
          context: .
 | 
						|
          platforms: linux/amd64,linux/arm,linux/arm64
 | 
						|
          file: docker/Dockerfile
 | 
						|
          push: ${{ github.event_name != 'pull_request' }}
 | 
						|
          tags: ${{ steps.docker-meta.outputs.tags }}
 | 
						|
          labels: ${{ steps.docker-meta.outputs.labels }}
 |