From a94448a773f43ec0a5e37bdf08a06545fa726993 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 3 Oct 2020 22:44:16 +0200 Subject: [PATCH] Enhanced git context and cache workflow Signed-off-by: CrazyMax --- .github/workflows/ci.yml | 76 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b045ba9..d810f49 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,8 @@ jobs: - name: Checkout uses: actions/checkout@v2.3.3 + with: + path: action - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -35,7 +37,7 @@ jobs: - name: Build and push id: docker_build - uses: ./ + uses: ./action with: file: ./test/Dockerfile builder: ${{ steps.buildx.outputs.name }} @@ -67,6 +69,8 @@ jobs: - name: Checkout uses: actions/checkout@v2.3.3 + with: + path: action - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -82,7 +86,7 @@ jobs: - name: Build and push id: docker_build - uses: ./ + uses: ./action with: file: ./test/Dockerfile builder: ${{ steps.buildx.outputs.name }} @@ -215,8 +219,70 @@ jobs: if: always() uses: crazy-max/ghaction-dump-context@v1 - github-cache: + github-cache-first: runs-on: ubuntu-latest + services: + registry: + image: registry:2 + ports: + - 5000:5000 + steps: + - + name: Checkout + uses: actions/checkout@v2.3.3 + - + name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + - + name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + with: + driver-opts: network=host + - + name: Cache Docker layers + uses: actions/cache@v2 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-ghcache-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx-ghcache- + - + name: Erase cache + run: | + rm -rf /tmp/.buildx-cache/* + - + name: Build and push + id: docker_build + uses: ./ + with: + context: ./test + file: ./test/Dockerfile-multi-golang + builder: ${{ steps.buildx.outputs.name }} + platforms: linux/amd64,linux/arm64 + push: true + tags: | + localhost:5000/name/app:latest + localhost:5000/name/app:1.0.0 + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + - + name: Inspect + run: | + docker buildx imagetools inspect localhost:5000/name/app:1.0.0 + - + name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + - + name: Dump context + if: always() + uses: crazy-max/ghaction-dump-context@v1 + + github-cache-hit: + runs-on: ubuntu-latest + needs: github-cache-first services: registry: image: registry:2 @@ -243,9 +309,9 @@ jobs: id: cache with: path: /tmp/.buildx-cache - key: ${{ runner.os }}-buildx-${{ github.sha }} + key: ${{ runner.os }}-buildx-ghcache-${{ github.sha }} restore-keys: | - ${{ runner.os }}-buildx- + ${{ runner.os }}-buildx-ghcache- - name: Build and push id: docker_build