From 9b8941f14bbf76b1c5635261606f1a258002347e Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 15:14:49 +0000 Subject: [PATCH 01/10] Add workflow file and dockerfile change --- .github/workflows/ci-docker.yml | 34 +++++++++++++++++++++++++++++++++ docker/Dockerfile | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 .github/workflows/ci-docker.yml diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml new file mode 100644 index 00000000..1f345b90 --- /dev/null +++ b/.github/workflows/ci-docker.yml @@ -0,0 +1,34 @@ +name: Build and Publish Docker Image + +on: + push: + branches: + - '*' + paths: + - 'Dockerfile' + +jobs: + build-and-publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set up Docker + uses: docker/setup-action@v2 + + - name: Login to GitHub Container Registry + run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin + + - name: Build and Push Docker Image + run: | + docker build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest . + docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} + if [ "${{ github.ref }}" = "refs/heads/main" ]; then + docker tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} + docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest + else + echo "Not on the main branch, skipping push to latest tag." + fi + diff --git a/docker/Dockerfile b/docker/Dockerfile index c87a6d67..0e75e0cf 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -96,6 +96,8 @@ deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-16 main\n" >> /etc/apt # Make our own python3.11 available for current $USER: ENV PATH "/opt/python3.11/bin:${PATH}" +# Env variable that forces venv environment creation in the entrypoint when set +ENV FORCE_VENV=0 COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] From 44e98c00d81d3b15bf0a4210146239dc34d6f964 Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 15:21:00 +0000 Subject: [PATCH 02/10] Adapt for a custom dir --- .github/workflows/ci-docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 1f345b90..ddd62088 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -5,7 +5,7 @@ on: branches: - '*' paths: - - 'Dockerfile' + - 'snitch/docker/Dockerfile' jobs: build-and-publish: @@ -23,7 +23,7 @@ jobs: - name: Build and Push Docker Image run: | - docker build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest . + docker build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} if [ "${{ github.ref }}" = "refs/heads/main" ]; then docker tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} From 34e02bd34ebc706e4a28811f7fa8aa5781f5436d Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 15:53:44 +0000 Subject: [PATCH 03/10] Add dummy change --- docker/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0e75e0cf..3e3dae2a 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -98,6 +98,7 @@ deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-16 main\n" >> /etc/apt ENV PATH "/opt/python3.11/bin:${PATH}" # Env variable that forces venv environment creation in the entrypoint when set ENV FORCE_VENV=0 +ENV TODO_VAR=0 COPY entrypoint.sh /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] From 44f1c85f870637f109bc77df9ea936c567af7004 Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 16:08:05 +0000 Subject: [PATCH 04/10] Add trigger --- .github/workflows/ci-docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index ddd62088..7defe642 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -6,6 +6,7 @@ on: - '*' paths: - 'snitch/docker/Dockerfile' + pull_request: jobs: build-and-publish: From 595810b21af56889eec320438f03e673faec1b7e Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 16:15:21 +0000 Subject: [PATCH 05/10] Use buildx instead --- .github/workflows/ci-docker.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 7defe642..48879fa8 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -16,18 +16,19 @@ jobs: - name: Checkout Repository uses: actions/checkout@v2 - - name: Set up Docker - uses: docker/setup-action@v2 + - name: Set up Docker Buildx + id: docker-buildx + uses: docker/setup-buildx-action@v1 - name: Login to GitHub Container Registry run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build and Push Docker Image run: | - docker build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . + docker buildx -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} if [ "${{ github.ref }}" = "refs/heads/main" ]; then - docker tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} + docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest else echo "Not on the main branch, skipping push to latest tag." From ff58c293a1b052cc1541187c9f3f67ffff6e274f Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Sun, 3 Mar 2024 16:20:58 +0000 Subject: [PATCH 06/10] Fix typo --- .github/workflows/ci-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 48879fa8..4fae1605 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -25,7 +25,7 @@ jobs: - name: Build and Push Docker Image run: | - docker buildx -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . + docker buildx build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} if [ "${{ github.ref }}" = "refs/heads/main" ]; then docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest From b224f1203f0df86c41a3564be5200e4a7254d4b5 Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Mon, 4 Mar 2024 09:00:56 +0000 Subject: [PATCH 07/10] Use var for gh repo of the Docker image --- .github/workflows/ci-docker.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 4fae1605..16fc9a98 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -12,6 +12,11 @@ jobs: build-and-publish: runs-on: ubuntu-latest + defaults: + run: + env: + SNITCH_TOOLCHAIN_REPO: snitch-toolchain + steps: - name: Checkout Repository uses: actions/checkout@v2 @@ -25,11 +30,11 @@ jobs: - name: Build and Push Docker Image run: | - docker buildx build -t ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} -f snitch/docker/Dockerfile . - docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} + docker buildx build -t ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} -f snitch/docker/Dockerfile . + docker push ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} if [ "${{ github.ref }}" = "refs/heads/main" ]; then - docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest - docker push ghcr.io/${{ github.repository_owner }}/${{ github.repository_name }}:latest + docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:latest + docker push ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:latest else echo "Not on the main branch, skipping push to latest tag." fi From 4e9ab6dfdcde19cf7b0dbdbfaa6a96c002816103 Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Mon, 4 Mar 2024 09:04:41 +0000 Subject: [PATCH 08/10] Fix indentation --- .github/workflows/ci-docker.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 16fc9a98..302f123b 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -12,10 +12,10 @@ jobs: build-and-publish: runs-on: ubuntu-latest - defaults: - run: - env: - SNITCH_TOOLCHAIN_REPO: snitch-toolchain + defaults: + run: + env: + SNITCH_TOOLCHAIN_REPO: snitch-toolchain steps: - name: Checkout Repository From 6392011ee52d2f44ce3442afae5b418f0a168f0b Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Mon, 4 Mar 2024 09:07:36 +0000 Subject: [PATCH 09/10] Do not use an env var --- .github/workflows/ci-docker.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 302f123b..125bf109 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -12,11 +12,6 @@ jobs: build-and-publish: runs-on: ubuntu-latest - defaults: - run: - env: - SNITCH_TOOLCHAIN_REPO: snitch-toolchain - steps: - name: Checkout Repository uses: actions/checkout@v2 @@ -30,11 +25,11 @@ jobs: - name: Build and Push Docker Image run: | - docker buildx build -t ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} -f snitch/docker/Dockerfile . - docker push ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} + docker buildx build -t ghcr.io/${{ github.repository_owner }}/snitch-toolchain:${{ github.sha }} -f snitch/docker/Dockerfile . + docker push ghcr.io/${{ github.repository_owner }}/snitch-toolchain:${{ github.sha }} if [ "${{ github.ref }}" = "refs/heads/main" ]; then - docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:latest - docker push ghcr.io/${{ github.repository_owner }}/${SNITCH_TOOLCHAIN_REPO}:latest + docker buildx imagetools create ghcr.io/${{ github.repository_owner }}/snitch-toolchain:${{ github.sha }} --tag ghcr.io/${{ github.repository_owner }}/snitch-toolchain:latest + docker push ghcr.io/${{ github.repository_owner }}/snitch-toolchain:latest else echo "Not on the main branch, skipping push to latest tag." fi From 80e29f3079ea5fcc4a0ebfdeddaee96966c16833 Mon Sep 17 00:00:00 2001 From: Chris Vasiladiotis Date: Mon, 4 Nov 2024 13:37:34 +0000 Subject: [PATCH 10/10] Remove login as it is now public --- .github/workflows/ci-docker.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 125bf109..1d5dfbe9 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -20,9 +20,6 @@ jobs: id: docker-buildx uses: docker/setup-buildx-action@v1 - - name: Login to GitHub Container Registry - run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - name: Build and Push Docker Image run: | docker buildx build -t ghcr.io/${{ github.repository_owner }}/snitch-toolchain:${{ github.sha }} -f snitch/docker/Dockerfile .