90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: Build and Release Runners
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - '**'
 | |
|     paths:
 | |
|       - 'runner/**'
 | |
|       - .github/workflows/build-and-release-runners.yml
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|     paths:
 | |
|       - runner/patched/*
 | |
|       - runner/Dockerfile
 | |
|       - runner/Dockerfile.ubuntu.1804
 | |
|       - runner/Dockerfile.dindrunner
 | |
|       - runner/entrypoint.sh
 | |
|       - .github/workflows/build-and-release-runners.yml
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: Build ${{ matrix.name }}
 | |
|     strategy:
 | |
|       matrix:
 | |
|         include:
 | |
|           - name: actions-runner
 | |
|             os-version: 20.04
 | |
|             dockerfile: Dockerfile
 | |
|           - name: actions-runner
 | |
|             os-version: 18.04
 | |
|             dockerfile: Dockerfile.ubuntu.1804
 | |
|           - name: actions-runner-dind
 | |
|             os-version: 20.04
 | |
|             dockerfile: Dockerfile.dindrunner
 | |
|     env:
 | |
|       RUNNER_VERSION: 2.277.1
 | |
|       DOCKER_VERSION: 19.03.12
 | |
|       DOCKERHUB_USERNAME: ${{ github.repository_owner }}
 | |
|     steps:
 | |
|       - name: Set outputs
 | |
|         id: vars
 | |
|         run: echo ::set-output name=sha_short::${GITHUB_SHA::7}
 | |
| 
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
| 
 | |
|       - name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
| 
 | |
|       - name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: latest
 | |
| 
 | |
|       - name: Login to DockerHub
 | |
|         uses: docker/login-action@v1
 | |
|         if: ${{ github.event_name == 'push' || github.event_name == 'release' }}
 | |
|         with:
 | |
|           username: ${{ github.repository_owner }}
 | |
|           password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
 | |
| 
 | |
|       - name: Build and Push Versioned Tags
 | |
|         uses: docker/build-push-action@v2
 | |
|         with:
 | |
|           context: ./runner
 | |
|           file: ./runner/${{ matrix.dockerfile }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: ${{ github.event_name != 'pull_request' }}
 | |
|           build-args: |
 | |
|             RUNNER_VERSION=${{ env.RUNNER_VERSION }}
 | |
|             DOCKER_VERSION=${{ env.DOCKER_VERSION }}            
 | |
|           tags: |
 | |
|             ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-ubuntu-${{ matrix.os-version }}
 | |
|             ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:v${{ env.RUNNER_VERSION }}-ubuntu-${{ matrix.os-version }}-${{ steps.vars.outputs.sha_short }}            
 | |
| 
 | |
|       - name: Build and Push Latest Tag
 | |
|         uses: docker/build-push-action@v2
 | |
|         with:
 | |
|           context: ./runner
 | |
|           file: ./runner/Dockerfile
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: ${{ github.event_name != 'pull_request' }}
 | |
|           build-args: |
 | |
|             RUNNER_VERSION=${{ env.RUNNER_VERSION }}
 | |
|             DOCKER_VERSION=${{ env.DOCKER_VERSION }}            
 | |
|           tags: |
 | |
|             ${{ env.DOCKERHUB_USERNAME }}/${{ matrix.name }}:latest            
 |