From a9cffb8ce563f49edc74fb9dca01bd4a0b671ee0 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 30 Mar 2023 13:54:45 +0100 Subject: [PATCH] Automate pushing dockerbuild image to ghcr.io (#598) --- .github/workflows/dockerbuild.yaml | 43 ++++++++++++++++++++++++++++++ dockerbuild/Dockerfile | 7 +++-- 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/dockerbuild.yaml diff --git a/.github/workflows/dockerbuild.yaml b/.github/workflows/dockerbuild.yaml new file mode 100644 index 0000000..9911c92 --- /dev/null +++ b/.github/workflows/dockerbuild.yaml @@ -0,0 +1,43 @@ +name: Dockerbuild +on: + workflow_dispatch: {} + push: + branches: [master, develop] + paths: + - "dockerbuild/**" +concurrency: ${{ github.workflow }}-${{ github.ref_name }} +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}-dockerbuild +jobs: + build: + name: Docker Build + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + + - name: Log in to the Container registry + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata for Docker + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch + + - name: Build and push Docker image + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: dockerbuild + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/dockerbuild/Dockerfile b/dockerbuild/Dockerfile index 02a821c..d669675 100644 --- a/dockerbuild/Dockerfile +++ b/dockerbuild/Dockerfile @@ -1,8 +1,9 @@ +# Docker image to facilitate building Element Desktop with native bits using a glibc version with broader compatibility FROM buildpack-deps:bionic-curl ENV DEBIAN_FRONTEND noninteractive -RUN curl -L https://yarnpkg.com/latest.tar.gz | tar xvz && mv yarn-* /yarn && ln -s /yarn/bin/yarn /usr/bin/yarn +RUN curl --proto "=https" -L https://yarnpkg.com/latest.tar.gz | tar xvz && mv yarn-* /yarn && ln -s /yarn/bin/yarn /usr/bin/yarn RUN apt-get -qq update && apt-get -qq dist-upgrade && \ # add repo for git-lfs curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash && \ @@ -14,6 +15,8 @@ RUN apt-get -qq update && apt-get -qq dist-upgrade && \ apt-get -qq install --no-install-recommends qtbase5-dev bsdtar build-essential autoconf libssl-dev gcc-multilib g++-multilib lzip rpm python libcurl4 git git-lfs ssh unzip tcl \ libsecret-1-dev libgnome-keyring-dev \ libopenjp2-tools \ + # Used by github actions \ + jq \ # Used by seshat (when not SQLCIPHER_STATIC) \ libsqlcipher-dev && \ # git-lfs @@ -34,7 +37,7 @@ ENV FORCE_COLOR true ENV NODE_VERSION 16.18.1 # this package is used for snapcraft and we should not clear apt list - to avoid apt-get update during snap build -RUN curl -L https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz | tar xz -C /usr/local --strip-components=1 && \ +RUN curl --proto "=https" -L https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz | tar xz -C /usr/local --strip-components=1 && \ unlink /usr/local/CHANGELOG.md && unlink /usr/local/LICENSE && unlink /usr/local/README.md && \ # https://github.com/npm/npm/issues/4531 npm config set unsafe-perm true