From 50b53e37001a77bb976b7fbfa9f0abfbcfeb5c3c Mon Sep 17 00:00:00 2001 From: "Guillaume B.B. Van Hemmen" <GuillaumeHemmen@noreply.git.van-hemmen.com> Date: Mon, 19 May 2025 19:01:03 +0200 Subject: [PATCH] Add CI workflows for Docker image building and pushing Introduce four workflows to automate Docker builds and pushes using Kaniko. These workflows cover push events to the `master` branch, pull requests, tag pushes, and other branches. They streamline image publishing to the specified registry with proper secrets configuration. --- .forgejo/workflows/docker-dev.yaml | 23 +++++++++++++++++++++++ .forgejo/workflows/docker-master.yaml | 23 +++++++++++++++++++++++ .forgejo/workflows/docker-pr.yaml | 17 +++++++++++++++++ .forgejo/workflows/docker-tag.yaml | 23 +++++++++++++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 .forgejo/workflows/docker-dev.yaml create mode 100644 .forgejo/workflows/docker-master.yaml create mode 100644 .forgejo/workflows/docker-pr.yaml create mode 100644 .forgejo/workflows/docker-tag.yaml diff --git a/.forgejo/workflows/docker-dev.yaml b/.forgejo/workflows/docker-dev.yaml new file mode 100644 index 0000000..fda6208 --- /dev/null +++ b/.forgejo/workflows/docker-dev.yaml @@ -0,0 +1,23 @@ +on: + push: + branches-ignore: + - 'master' +jobs: + docker-dev: + runs-on: docker + container: + image: git.van-hemmen.com/actions/kaniko:25.21.1 + steps: + - name: Build & push with Kaniko + run: /bin/build.sh + env: + # --- mandatory -------------------------------------------------------- + KANIKO_CONTEXT: git://git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase.git + GIT_REF_NAME: ${{ github.ref_name }} + GIT_USERNAME: ${{ secrets.docker_username }} + GIT_PASSWORD: ${{ secrets.access_token }} + + # --- optional (only needed when you plan to push) --------------------- + REGISTRY_USER: ${{ secrets.docker_username }} + REGISTRY_PASS: ${{ secrets.access_token }} + KANIKO_DESTINATION: git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase:${GITHUB_SHA} diff --git a/.forgejo/workflows/docker-master.yaml b/.forgejo/workflows/docker-master.yaml new file mode 100644 index 0000000..25e856e --- /dev/null +++ b/.forgejo/workflows/docker-master.yaml @@ -0,0 +1,23 @@ +on: + push: + branches: + - 'master' +jobs: + docker-master: + runs-on: docker + container: + image: git.van-hemmen.com/actions/kaniko:25.21.1 + steps: + - name: Build & push with Kaniko + run: /bin/build.sh + env: + # --- mandatory -------------------------------------------------------- + KANIKO_CONTEXT: git://git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase.git + GIT_REF_NAME: ${{ github.ref_name }} + GIT_USERNAME: ${{ secrets.docker_username }} + GIT_PASSWORD: ${{ secrets.access_token }} + + # --- optional (only needed when you plan to push) --------------------- + REGISTRY_USER: ${{ secrets.docker_username }} + REGISTRY_PASS: ${{ secrets.access_token }} + KANIKO_DESTINATION: git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase:${GITHUB_SHA},git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase:latest diff --git a/.forgejo/workflows/docker-pr.yaml b/.forgejo/workflows/docker-pr.yaml new file mode 100644 index 0000000..bcad5d6 --- /dev/null +++ b/.forgejo/workflows/docker-pr.yaml @@ -0,0 +1,17 @@ +on: + pull_request: + +jobs: + docker-pr: + runs-on: docker + container: + image: git.van-hemmen.com/actions/kaniko:25.21.1 + steps: + - name: Build & push with Kaniko + run: /bin/build.sh + env: + # --- mandatory -------------------------------------------------------- + KANIKO_CONTEXT: git://git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase.git + GIT_REF_NAME: ${{ github.head_ref }} + GIT_USERNAME: ${{ secrets.docker_username }} + GIT_PASSWORD: ${{ secrets.access_token }} diff --git a/.forgejo/workflows/docker-tag.yaml b/.forgejo/workflows/docker-tag.yaml new file mode 100644 index 0000000..8942c87 --- /dev/null +++ b/.forgejo/workflows/docker-tag.yaml @@ -0,0 +1,23 @@ +on: + push: + tags: + - '*' +jobs: + docker-tag: + runs-on: docker + container: + image: gcr.io/kaniko-project/executor:debug + steps: + - name: Build & push with Kaniko + run: /bin/build.sh + env: + # --- mandatory -------------------------------------------------------- + KANIKO_CONTEXT: git://git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase.git + GIT_REF_NAME: ${{ github.ref_name }} + GIT_USERNAME: ${{ secrets.docker_username }} + GIT_PASSWORD: ${{ secrets.access_token }} + + # --- optional (only needed when you plan to push) --------------------- + REGISTRY_USER: ${{ secrets.docker_username }} + REGISTRY_PASS: ${{ secrets.access_token }} + KANIKO_DESTINATION: git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase:${GITHUB_REF_NAME},git.van-hemmen.com/GuillaumeHemmen/debian-node-firebase:latest