From 6c41d7afdec77a106e625562e5bdf62bb1ef17a8 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Tue, 13 Dec 2022 11:24:22 -0800 Subject: [PATCH 1/6] Add dockerfile for bot and build/publish actions --- .github/workflows/docker/backend.yaml | 14 +++++++ .github/workflows/docker/bot.yaml | 14 +++++++ .github/workflows/docker/build.yaml | 53 +++++++++++++++++++++++++++ bot/Dockerfile | 7 ++++ 4 files changed, 88 insertions(+) create mode 100644 .github/workflows/docker/backend.yaml create mode 100644 .github/workflows/docker/bot.yaml create mode 100644 .github/workflows/docker/build.yaml create mode 100644 bot/Dockerfile diff --git a/.github/workflows/docker/backend.yaml b/.github/workflows/docker/backend.yaml new file mode 100644 index 00000000..b054e819 --- /dev/null +++ b/.github/workflows/docker/backend.yaml @@ -0,0 +1,14 @@ +name: (Backend) Publish Docker Image + +on: + push: + paths: + - 'backend/**' + +jobs: + build: + uses: ./.github/workflows/docker/build.yaml + with: + image-name: backend + folder: backend + build-args: "" \ No newline at end of file diff --git a/.github/workflows/docker/bot.yaml b/.github/workflows/docker/bot.yaml new file mode 100644 index 00000000..a0ec3a5f --- /dev/null +++ b/.github/workflows/docker/bot.yaml @@ -0,0 +1,14 @@ +name: (Bot) Publish Docker Image + +on: + push: + paths: + - 'bot/**' + +jobs: + build: + uses: ./.github/workflows/docker/build.yaml + with: + image-name: bot + folder: bot + build-args: "" \ No newline at end of file diff --git a/.github/workflows/docker/build.yaml b/.github/workflows/docker/build.yaml new file mode 100644 index 00000000..8ba7bd26 --- /dev/null +++ b/.github/workflows/docker/build.yaml @@ -0,0 +1,53 @@ +name: Build + +on: + workflow_call: + inputs: + folder: + required: true + type: string + image-name: + required: true + type: string + build-args: + required: false + type: string + +jobs: + build: + name: Build Images + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2.2.1 + - name: Login to container registry + uses: docker/login-action@v2.1.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Get base registry + run: | + echo "REGISTRY=ghcr.io/${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV + - name: Set tag prefix + if: github.ref_name != 'main' + run: | + echo "TAG_PREFIX=${{ github.ref_name }}-" >> $GITHUB_ENV + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4.1.1 + with: + images: ${{ env.REGISTRY }}/${{ inputs.image-name }} + tags: | + type=sha,prefix=${{ env.TAG_PREFIX }},format=short + - name: Build and push Docker image + uses: docker/build-push-action@v3.2.0 + with: + context: ${{ inputs.folder }} + build-args: ${{ inputs.build-args }} + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image-name }}:buildcache + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image-name }}:buildcache,mode=max diff --git a/bot/Dockerfile b/bot/Dockerfile new file mode 100644 index 00000000..9cff3dc2 --- /dev/null +++ b/bot/Dockerfile @@ -0,0 +1,7 @@ +FROM python:3.10-slim-bullseye +RUN mkdir /app +ADD requirements.txt /app/requirements.txt +WORKDIR /app +RUN pip install -r requirements.txt +ADD . /app +CMD ["python", "bot.py"] \ No newline at end of file From 57cf7d2a72eb87c037315362e0f2b1b7dca5043c Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Tue, 13 Dec 2022 18:02:09 -0800 Subject: [PATCH 2/6] use gha cache instead of registry --- .github/workflows/docker/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker/build.yaml b/.github/workflows/docker/build.yaml index 8ba7bd26..ee32d374 100644 --- a/.github/workflows/docker/build.yaml +++ b/.github/workflows/docker/build.yaml @@ -49,5 +49,5 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image-name }}:buildcache - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image-name }}:buildcache,mode=max + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file From df5fcc873ca0002b3827cb4894d81aae29613ab5 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Tue, 13 Dec 2022 18:35:22 -0800 Subject: [PATCH 3/6] reorg --- .github/workflows/{docker/backend.yaml => docker-backend.yaml} | 2 +- .github/workflows/{docker/bot.yaml => docker-bot.yaml} | 2 +- .github/workflows/{docker/build.yaml => docker-build.yaml} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename .github/workflows/{docker/backend.yaml => docker-backend.yaml} (78%) rename .github/workflows/{docker/bot.yaml => docker-bot.yaml} (76%) rename .github/workflows/{docker/build.yaml => docker-build.yaml} (100%) diff --git a/.github/workflows/docker/backend.yaml b/.github/workflows/docker-backend.yaml similarity index 78% rename from .github/workflows/docker/backend.yaml rename to .github/workflows/docker-backend.yaml index b054e819..12f6665c 100644 --- a/.github/workflows/docker/backend.yaml +++ b/.github/workflows/docker-backend.yaml @@ -7,7 +7,7 @@ on: jobs: build: - uses: ./.github/workflows/docker/build.yaml + uses: ./.github/workflows/docker-build.yaml with: image-name: backend folder: backend diff --git a/.github/workflows/docker/bot.yaml b/.github/workflows/docker-bot.yaml similarity index 76% rename from .github/workflows/docker/bot.yaml rename to .github/workflows/docker-bot.yaml index a0ec3a5f..4b1a0d97 100644 --- a/.github/workflows/docker/bot.yaml +++ b/.github/workflows/docker-bot.yaml @@ -7,7 +7,7 @@ on: jobs: build: - uses: ./.github/workflows/docker/build.yaml + uses: ./.github/workflows/docker-build.yaml with: image-name: bot folder: bot diff --git a/.github/workflows/docker/build.yaml b/.github/workflows/docker-build.yaml similarity index 100% rename from .github/workflows/docker/build.yaml rename to .github/workflows/docker-build.yaml From 2634f27008ab821f16ddc0633b36b6d796cb7ec2 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Tue, 13 Dec 2022 18:37:21 -0800 Subject: [PATCH 4/6] newlines --- .github/workflows/docker-backend.yaml | 2 +- .github/workflows/docker-bot.yaml | 2 +- .github/workflows/docker-build.yaml | 2 +- bot/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-backend.yaml b/.github/workflows/docker-backend.yaml index 12f6665c..976a5602 100644 --- a/.github/workflows/docker-backend.yaml +++ b/.github/workflows/docker-backend.yaml @@ -11,4 +11,4 @@ jobs: with: image-name: backend folder: backend - build-args: "" \ No newline at end of file + build-args: "" diff --git a/.github/workflows/docker-bot.yaml b/.github/workflows/docker-bot.yaml index 4b1a0d97..2b34ebeb 100644 --- a/.github/workflows/docker-bot.yaml +++ b/.github/workflows/docker-bot.yaml @@ -11,4 +11,4 @@ jobs: with: image-name: bot folder: bot - build-args: "" \ No newline at end of file + build-args: "" diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml index ee32d374..9d5c0106 100644 --- a/.github/workflows/docker-build.yaml +++ b/.github/workflows/docker-build.yaml @@ -50,4 +50,4 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file + cache-to: type=gha,mode=max diff --git a/bot/Dockerfile b/bot/Dockerfile index 9cff3dc2..ab215b5b 100644 --- a/bot/Dockerfile +++ b/bot/Dockerfile @@ -4,4 +4,4 @@ ADD requirements.txt /app/requirements.txt WORKDIR /app RUN pip install -r requirements.txt ADD . /app -CMD ["python", "bot.py"] \ No newline at end of file +CMD ["python", "bot.py"] From c3f406925285f2cfb46f4584d2f5a9000cc160f8 Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Tue, 13 Dec 2022 18:39:03 -0800 Subject: [PATCH 5/6] quotes --- .github/workflows/docker-backend.yaml | 2 +- .github/workflows/docker-bot.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-backend.yaml b/.github/workflows/docker-backend.yaml index 976a5602..026002e8 100644 --- a/.github/workflows/docker-backend.yaml +++ b/.github/workflows/docker-backend.yaml @@ -3,7 +3,7 @@ name: (Backend) Publish Docker Image on: push: paths: - - 'backend/**' + - "backend/**" jobs: build: diff --git a/.github/workflows/docker-bot.yaml b/.github/workflows/docker-bot.yaml index 2b34ebeb..d97bf757 100644 --- a/.github/workflows/docker-bot.yaml +++ b/.github/workflows/docker-bot.yaml @@ -3,7 +3,7 @@ name: (Bot) Publish Docker Image on: push: paths: - - 'bot/**' + - "bot/**" jobs: build: From c7d4fbb96f9af2694212c9fe35ee169a79ed274b Mon Sep 17 00:00:00 2001 From: Stephan Auerhahn Date: Wed, 14 Dec 2022 16:26:00 -0800 Subject: [PATCH 6/6] restrict docker builds to versioned tags --- .github/workflows/docker-backend.yaml | 2 ++ .github/workflows/docker-bot.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/docker-backend.yaml b/.github/workflows/docker-backend.yaml index 026002e8..027d8e03 100644 --- a/.github/workflows/docker-backend.yaml +++ b/.github/workflows/docker-backend.yaml @@ -4,6 +4,8 @@ on: push: paths: - "backend/**" + tags: + - v* jobs: build: diff --git a/.github/workflows/docker-bot.yaml b/.github/workflows/docker-bot.yaml index d97bf757..589499a0 100644 --- a/.github/workflows/docker-bot.yaml +++ b/.github/workflows/docker-bot.yaml @@ -4,6 +4,8 @@ on: push: paths: - "bot/**" + tags: + - v* jobs: build: