7508dd74ee
* Update workflow dependencies ubuntu-latest vm has been updated from 20.04 to 22.04. To avoid sudden issues, use 22.04 explicitly. CMake doesn't need to be updated on 22.04, but ninja must be installed separately in the simulator workflow. actions/checkout@v2 uses deprecated Node.js 12. Update to v3 which uses 16
71 lines
2.2 KiB
YAML
71 lines
2.2 KiB
YAML
name: Build and push Docker image
|
|
|
|
on:
|
|
push:
|
|
branches: [ develop ]
|
|
paths:
|
|
- 'docker/**'
|
|
pull_request:
|
|
branches: [ develop ]
|
|
paths:
|
|
- 'docker/**'
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-22.04
|
|
env:
|
|
USERNAME: infinitime
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Log in to Docker Hub
|
|
if: github.event_name != 'pull_request'
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_HUB_LOGIN_USERNAME }}
|
|
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
|
|
|
|
- name: Set up Docker metadata
|
|
id: meta
|
|
uses: docker/metadata-action@v4
|
|
with:
|
|
images: |
|
|
${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build
|
|
tags: |
|
|
type=sha
|
|
type=raw,value=latest
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v2
|
|
|
|
- name: Set up Docker Buildx
|
|
id: buildx
|
|
uses: docker/setup-buildx-action@v2
|
|
|
|
- name: Build and push
|
|
if: github.event_name != 'pull_request'
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: ./docker/
|
|
file: ./docker/Dockerfile
|
|
platforms: linux/amd64,linux/arm64
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache
|
|
cache-to: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache,mode=max
|
|
|
|
- name: Build
|
|
if: github.event_name == 'pull_request'
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
context: ./docker/
|
|
file: ./docker/Dockerfile
|
|
platforms: linux/amd64,linux/arm64
|
|
builder: ${{ steps.buildx.outputs.name }}
|
|
push: false
|
|
cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache
|