From fdad3fc98568b5eff7c0f2729b868b8c12ce7c77 Mon Sep 17 00:00:00 2001
From: Finlay Davidson <finlay.davidson@coderclass.nl>
Date: Sun, 10 Jul 2022 16:46:24 +0200
Subject: [PATCH] Fix Docker workflow not pushing on manual trigger

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.
---
 .github/workflows/docker.yml | 16 +++++++++-------
 .github/workflows/format.yml |  2 +-
 .github/workflows/lv_sim.yml |  4 +++-
 .github/workflows/main.yml   |  4 +++-
 4 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index f81831ac..8d45fe08 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -15,11 +15,13 @@ on:
 jobs:
   build:
     runs-on: ubuntu-latest
+    env:
+      USERNAME: infinitime
     steps:
       - uses: actions/checkout@v3
 
       - name: Log in to Docker Hub
-        if: github.event_name == 'push'
+        if: github.event_name != 'pull_request'
         uses: docker/login-action@v2
         with:
           username: ${{ secrets.DOCKER_HUB_LOGIN_USERNAME }}
@@ -30,7 +32,7 @@ jobs:
         uses: docker/metadata-action@v4
         with:
           images: |
-            ${{ secrets.DOCKER_HUB_IMAGE_USERNAME }}/infinitime-build
+            ${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build
           tags: |
             type=sha
             type=raw,value=latest
@@ -43,7 +45,7 @@ jobs:
         uses: docker/setup-buildx-action@v2
 
       - name: Build and push
-        if: github.event_name == 'push'
+        if: github.event_name != 'pull_request'
         uses: docker/build-push-action@v3
         with:
           context: ./docker/
@@ -53,11 +55,11 @@ jobs:
           push: true
           tags: ${{ steps.meta.outputs.tags }}
           labels: ${{ steps.meta.outputs.labels }}
-          cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME }}/infinitime-build:buildcache
-          cache-to: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME }}/infinitime-build:buildcache,mode=max
+          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 != 'push'
+        if: github.event_name == 'pull_request'
         uses: docker/build-push-action@v3
         with:
           context: ./docker/
@@ -65,4 +67,4 @@ jobs:
           platforms: linux/amd64,linux/arm64
           builder: ${{ steps.buildx.outputs.name }}
           push: false
-          cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME }}/infinitime-build:buildcache
+          cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
index dc850096..714c60bf 100644
--- a/.github/workflows/format.yml
+++ b/.github/workflows/format.yml
@@ -2,7 +2,7 @@ name: Code formatting
 
 on:
   pull_request:
-    branches: [ master, develop ]
+    branches: [ develop ]
     paths:
       - '**.cpp'
       - '**.h'
diff --git a/.github/workflows/lv_sim.yml b/.github/workflows/lv_sim.yml
index 90ba4a76..951b3c8d 100644
--- a/.github/workflows/lv_sim.yml
+++ b/.github/workflows/lv_sim.yml
@@ -9,10 +9,12 @@ on:
       - 'doc/**'
       - 'images/**'
   pull_request:
-    branches: [ master, develop ]
+    branches: [ develop ]
     paths-ignore:
       - 'doc/**'
       - 'images/**'
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
 
 jobs:
   build:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index eebd54bd..69cdb715 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -12,10 +12,12 @@ on:
       - 'doc/**'
       - 'images/**'
   pull_request:
-    branches: [ master, develop ]
+    branches: [ develop ]
     paths-ignore:
       - 'doc/**'
       - 'images/**'
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
 
 jobs:
   build: