From e2e1e682bae24eeccdb94026fe3c5f00108fdc56 Mon Sep 17 00:00:00 2001 From: azrikahar <42867097+azrikahar@users.noreply.github.com> Date: Sat, 19 Jun 2021 03:26:30 +0800 Subject: [PATCH] add docker buildx github action Signed-off-by: Azri Kahar --- .github/workflows/docker.yml | 77 ++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000000..91a99cff12 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,77 @@ +name: docker + +on: + workflow_dispatch: + inputs: + tag: + description: "Docker image tag" + required: true + +jobs: + buildx: + runs-on: ubuntu-latest + env: + working-directory: ./packages/nocodb + strategy: + matrix: + node-version: [12] + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + + - uses: bahmutov/npm-install@v1 + with: + working-directory: ${{ env.working-directory }} + + - name: Build nocodb and docker files + run: | + npm run build + npm run docker:build + working-directory: ${{ env.working-directory }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + + - name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: ${{ env.working-directory }} + build-args: NC_VERSION=${{ github.event.inputs.tag }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache-new + push: true + tags: | + nocodb/nocodb:${{ github.event.inputs.tag }} + nocodb/nocodb:latest + + # Temp fix + # https://github.com/docker/build-push-action/issues/252 + # https://github.com/moby/buildkit/issues/1896 + - name: Move cache + run: | + rm -rf /tmp/.buildx-cache + mv /tmp/.buildx-cache-new /tmp/.buildx-cache