fdad3fc985
Also fix issue where workflow fails on pull requests when the user who made the pull request doesn't have the secrets set. Also allow other workflows to be triggered manually. Also don't trigger any workflows on pull requests to master, as there shouldn't be any pull requests against master.
70 lines
2.2 KiB
YAML
70 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-latest
|
|
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
|