From c7dd8da49dd9bdcfc2badcf827412a3056c4266a Mon Sep 17 00:00:00 2001 From: Christian Langner Date: Sat, 14 Jan 2023 20:19:49 +0100 Subject: [PATCH 1/9] Building and publishing dns-desec docker image --- .github/workflows/docker-build-publish.yml | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/docker-build-publish.yml diff --git a/.github/workflows/docker-build-publish.yml b/.github/workflows/docker-build-publish.yml new file mode 100644 index 0000000..af1105c --- /dev/null +++ b/.github/workflows/docker-build-publish.yml @@ -0,0 +1,68 @@ +name: Docker Build and Publish + +on: + push: + # Publish semver tags as releases. + tags: [ 'v*' ] # Push events to matching v*, i.e. v1.0, v1.0.1 + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: ghcr.io + # Base Image Version to use + BASE_IMAGE_VERSION: v2.1.1 + # Tag Version which triggered the build + IMAGE_TAG: ${{ github.ref_name }} + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + cmd: + - arch: arm32v6 + platforms: linux/arm/v6 + - arch: arm64v8 + platforms: linux/arm64/v8 + - arch: amd64 + platforms: linux/amd64 + + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v2 + + - name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + #- name: Login to Docker Hub + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Lower case repository name + run: | + echo "IMAGE_REPO=${REPO,,}" >>${GITHUB_ENV} + env: + REPO: '${{ github.repository }}' + + - name: Build and push Docker images + id: build-and-push + run: | + docker buildx build . -f Dockerfile --platform ${{ matrix.cmd.platforms }} --push \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:${{ matrix.cmd.arch }}-${{ env.IMAGE_TAG }} \ + -t ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:${{ matrix.cmd.arch }}-latest \ + --build-arg FROM_IMAGE=certbot/certbot:${{ matrix.cmd.arch }}-${{ env.BASE_IMAGE_VERSION }} From 3ae9cb69e780ae0d6e0168d6a547e23419c3dc9c Mon Sep 17 00:00:00 2001 From: Christian Langner Date: Sat, 14 Jan 2023 20:20:34 +0100 Subject: [PATCH 2/9] Create Dockerfile --- Dockerfile | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c7b9357 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,6 @@ +ARG FROM_IMAGE=certbot/certbot:arm32v6-v2.1.1 +#Base +FROM ${FROM_IMAGE} + +# Install the DNS plugin +RUN pip install certbot-dns-desec==1.2.1 From cbb73ffcfcaab6637b197d8be818cd3469988aa0 Mon Sep 17 00:00:00 2001 From: Christian Langner Date: Sat, 14 Jan 2023 20:40:58 +0100 Subject: [PATCH 3/9] Base image and version * Change base image architecture and version * Remove version from certbot-dns-desec --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index c7b9357..1c5ca47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ -ARG FROM_IMAGE=certbot/certbot:arm32v6-v2.1.1 +ARG FROM_IMAGE=certbot/certbot:amd64-v2.1.1 + #Base FROM ${FROM_IMAGE} # Install the DNS plugin -RUN pip install certbot-dns-desec==1.2.1 +RUN pip install certbot-dns-desec From af1613c659964061f8ba30cc8b965f9832984bbd Mon Sep 17 00:00:00 2001 From: Christian Langner Date: Wed, 18 Jan 2023 14:21:46 +0100 Subject: [PATCH 4/9] Bump to certbot 2.2.0 * Based on Certbot 2.2.0 now * Builds certbot-dns-desec Docker from local sources --- Dockerfile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1c5ca47..434cc61 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,15 @@ -ARG FROM_IMAGE=certbot/certbot:amd64-v2.1.1 +ARG FROM_IMAGE=certbot/certbot:amd64-v2.2.0 #Base FROM ${FROM_IMAGE} # Install the DNS plugin -RUN pip install certbot-dns-desec +COPY . /app +WORKDIR /app +RUN set -ex && \ + pip install -r requirements.txt && \ + pip install . + +RUN rm -rf /app + +#RUN pip install certbot-dns-desec From 1dff01cc9da592444053752445ad13bc51d92d81 Mon Sep 17 00:00:00 2001 From: Christian Langner Date: Wed, 18 Jan 2023 14:56:11 +0100 Subject: [PATCH 5/9] Bump certbot; Link images * Bump to certbot 2.2.0 * Link images together under "latest" tag --- .github/workflows/docker-build-publish.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-build-publish.yml b/.github/workflows/docker-build-publish.yml index af1105c..c46c255 100644 --- a/.github/workflows/docker-build-publish.yml +++ b/.github/workflows/docker-build-publish.yml @@ -9,7 +9,7 @@ env: # Use docker.io for Docker Hub if empty REGISTRY: ghcr.io # Base Image Version to use - BASE_IMAGE_VERSION: v2.1.1 + BASE_IMAGE_VERSION: v2.2.0 # Tag Version which triggered the build IMAGE_TAG: ${{ github.ref_name }} @@ -66,3 +66,16 @@ jobs: -t ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:${{ matrix.cmd.arch }}-${{ env.IMAGE_TAG }} \ -t ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:${{ matrix.cmd.arch }}-latest \ --build-arg FROM_IMAGE=certbot/certbot:${{ matrix.cmd.arch }}-${{ env.BASE_IMAGE_VERSION }} + + - name: Sleep for 30 seconds + run: sleep 30s + shell: bash + + - name: Link to latest tag + id: link-tag + run: | + docker manifest create ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:latest \ + --amend ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:amd64-latest \ + --amend ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:arm32v6-latest \ + --amend ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:arm64v8-latest + docker manifest push ${{ env.REGISTRY }}/${{ env.IMAGE_REPO }}:latest From 036ab31c202741d33acbc90c0b25d332aa5a7504 Mon Sep 17 00:00:00 2001 From: Nils Wisiol Date: Sat, 17 Jun 2023 17:14:12 +0200 Subject: [PATCH 6/9] Bump to certbot 2.6 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 434cc61..dbe2ecb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG FROM_IMAGE=certbot/certbot:amd64-v2.2.0 +ARG FROM_IMAGE=certbot/certbot:amd64-v2.6.0 #Base FROM ${FROM_IMAGE} From ed78efc3bb22497384448443e1323af066bdaaa9 Mon Sep 17 00:00:00 2001 From: Nils Wisiol Date: Sat, 17 Jun 2023 17:24:42 +0200 Subject: [PATCH 7/9] Run test matrix even if some jobs fail --- .github/workflows/e2e.yml | 1 + .github/workflows/main.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e903be3..492510b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -11,6 +11,7 @@ jobs: runs-on: ubuntu-latest environment: desec-test-account strategy: + fail-fast: false # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1db8a87..702333d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,6 +10,7 @@ jobs: build: runs-on: ubuntu-latest strategy: + fail-fast: false # You can use PyPy versions in python-version. # For example, pypy2 and pypy3 matrix: From 1c9fcf0fab1db296ca3275cfb46507cceda95e0a Mon Sep 17 00:00:00 2001 From: Nils Wisiol Date: Sat, 17 Jun 2023 17:31:58 +0200 Subject: [PATCH 8/9] Upgrading min certbot to 2.21, currently shipped by Ubuntu 22.04.2 --- .github/workflows/e2e.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 492510b..a6c347e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -23,10 +23,7 @@ jobs: '3.11', ] certbot-version: [ - # TODO at the time of writing, versions earlier than 1.14, including '0.40.0', the latest version for Ubuntu - # 20.04, are broken because ImportError: cannot import name 'IO' from 'acme.magic_typing' - # (venv/lib/python3.8/site-packages/acme/magic_typing.py) - '1.14.0', + '1.21.0', '1.32.0', '2.0.0', ] From b26ee61e5b9fca607477c55d4e8637d71d79c9d1 Mon Sep 17 00:00:00 2001 From: Nils Wisiol Date: Sat, 17 Jun 2023 17:32:42 +0200 Subject: [PATCH 9/9] Adding latest certbot release to text matrix --- .github/workflows/e2e.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a6c347e..fd427ac 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -26,6 +26,7 @@ jobs: '1.21.0', '1.32.0', '2.0.0', + '2.6.0', ] steps: