InfiniTime/.github/workflows/docker.yml
Riku Isokoski 7508dd74ee
Update workflow dependencies (#1504)
* 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
2023-01-12 22:04:25 +02:00

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