Просмотр исходного кода

Merge pull request #3993 from weseek/imprv/build-docker-image

Imprv/build docker image
Yuki Takei 4 лет назад
Родитель
Сommit
fe29cbab73

+ 1 - 0
.github/workflows/ci-slackbot-proxy.yml

@@ -4,6 +4,7 @@ on:
   push:
   push:
     branches-ignore:
     branches-ignore:
       - release/**
       - release/**
+      - rc/**
       - tmp/**
       - tmp/**
     paths:
     paths:
       - .github/workflows/ci-slackbot-proxy.yml
       - .github/workflows/ci-slackbot-proxy.yml

+ 1 - 0
.github/workflows/ci.yml

@@ -4,6 +4,7 @@ on:
   push:
   push:
     branches-ignore:
     branches-ignore:
       - release/**
       - release/**
+      - rc/**
       - tmp/**
       - tmp/**
     paths:
     paths:
       - .github/workflows/ci.yml
       - .github/workflows/ci.yml

+ 0 - 5
.github/workflows/release-rc.yml

@@ -66,8 +66,3 @@ jobs:
       run: |
       run: |
         rm -rf /tmp/.buildx-cache
         rm -rf /tmp/.buildx-cache
         mv /tmp/.buildx-cache-new /tmp/.buildx-cache
         mv /tmp/.buildx-cache-new /tmp/.buildx-cache
-
-    - name: Check whether workspace is clean
-      run: |
-        STATUS=`git status --porcelain`
-        if [ -z "$STATUS" ]; then exit 0; else exit 1; fi

+ 31 - 12
.github/workflows/release-slackbot-proxy.yml

@@ -13,14 +13,21 @@ jobs:
     steps:
     steps:
     - uses: actions/checkout@v2
     - uses: actions/checkout@v2
 
 
-    - name: Get version
+    - name: Setup semver
+      id: semver
       working-directory: ./packages/slackbot-proxy
       working-directory: ./packages/slackbot-proxy
       run: |
       run: |
-        export RELEASE_VERSION=`npm run version --silent`
-        echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
+        semver=`npm run version --silent`
+        echo "::set-output name=SEMVER::$semver"
 
 
-    - name: Set up Docker Buildx
-      uses: docker/setup-buildx-action@v1
+    - name: Docker meta
+      id: meta
+      uses: docker/metadata-action@v3
+      with:
+        images: weseek/growi-slackbot-proxy,ghcr.io/weseek/growi-slackbot-proxy,asia.gcr.io/${{ secrets.GCP_PRJ_ID_SLACKBOT_PROXY }}/growi-slackbot-proxy
+        tags: |
+          type=raw,value=latest
+          type=raw,value=${{ steps.semver.outputs.SEMVER }}
 
 
     - name: Login to docker.io registry
     - name: Login to docker.io registry
       run: |
       run: |
@@ -44,6 +51,17 @@ jobs:
       run: |
       run: |
         gcloud auth configure-docker --quiet
         gcloud auth configure-docker --quiet
 
 
+    - name: Set up Docker Buildx
+      uses: docker/setup-buildx-action@v1
+
+    - name: Cache Docker layers
+      uses: actions/cache@v2
+      with:
+        path: /tmp/.buildx-cache
+        key: ${{ runner.os }}-buildx-slackbot-proxy-${{ github.sha }}
+        restore-keys: |
+          ${{ runner.os }}-buildx-slackbot-proxy-
+
     - name: Build and push
     - name: Build and push
       uses: docker/build-push-action@v2
       uses: docker/build-push-action@v2
       with:
       with:
@@ -51,13 +69,14 @@ jobs:
         file: ./packages/slackbot-proxy/docker/Dockerfile
         file: ./packages/slackbot-proxy/docker/Dockerfile
         platforms: linux/amd64
         platforms: linux/amd64
         push: true
         push: true
-        tags: |
-          weseek/growi-slackbot-proxy:latest
-          weseek/growi-slackbot-proxy:${{ env.RELEASE_VERSION }}
-          ghcr.io/weseek/growi-slackbot-proxy:latest
-          ghcr.io/weseek/growi-slackbot-proxy:${{ env.RELEASE_VERSION }}
-          asia.gcr.io/${{ secrets.GCP_PRJ_ID_SLACKBOT_PROXY }}/growi-slackbot-proxy:latest
-          asia.gcr.io/${{ secrets.GCP_PRJ_ID_SLACKBOT_PROXY }}/growi-slackbot-proxy:${{ env.RELEASE_VERSION }}
+        cache-from: type=local,src=/tmp/.buildx-cache
+        cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
+        tags: ${{ steps.meta.outputs.tags }}
+
+    - name: Move cache
+      run: |
+        rm -rf /tmp/.buildx-cache
+        mv /tmp/.buildx-cache-new /tmp/.buildx-cache
 
 
     - name: Update Docker Hub Description
     - name: Update Docker Hub Description
       uses: peter-evans/dockerhub-description@v2
       uses: peter-evans/dockerhub-description@v2

+ 15 - 0
.github/workflows/release.yml

@@ -100,6 +100,14 @@ jobs:
     - name: Set up Docker Buildx
     - name: Set up Docker Buildx
       uses: docker/setup-buildx-action@v1
       uses: docker/setup-buildx-action@v1
 
 
+    - name: Cache Docker layers
+      uses: actions/cache@v2
+      with:
+        path: /tmp/.buildx-cache
+        key: ${{ runner.os }}-buildx-app-${{ github.sha }}
+        restore-keys: |
+          ${{ runner.os }}-buildx-app-
+
     - name: Build and push
     - name: Build and push
       uses: docker/build-push-action@v2
       uses: docker/build-push-action@v2
       with:
       with:
@@ -107,8 +115,15 @@ jobs:
         file: ./docker/Dockerfile
         file: ./docker/Dockerfile
         platforms: linux/amd64
         platforms: linux/amd64
         push: true
         push: true
+        cache-from: type=local,src=/tmp/.buildx-cache
+        cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new
         tags: ${{ steps.meta.outputs.tags }}
         tags: ${{ steps.meta.outputs.tags }}
 
 
+    - name: Move cache
+      run: |
+        rm -rf /tmp/.buildx-cache
+        mv /tmp/.buildx-cache-new /tmp/.buildx-cache
+
     - name: Update Docker Hub Description
     - name: Update Docker Hub Description
       uses: peter-evans/dockerhub-description@v2
       uses: peter-evans/dockerhub-description@v2
       with:
       with: