Ver código fonte

refactor workflows

Yuki Takei 3 anos atrás
pai
commit
39e2d4c19f

+ 25 - 2
.github/workflows/release-rc.yml

@@ -13,10 +13,33 @@ concurrency:
 
 jobs:
 
-  build-rc:
+  determine-tags:
+    runs-on: ubuntu-latest
+
+    outputs:
+      TAGS: ${{ steps.meta.outputs.tags }}
+
+    steps:
+
+    - name: Docker meta
+      id: meta
+      uses: docker/metadata-action@v4
+      with:
+        images: ${{ matrix.registry }}/weseek/growi-codebuild-test
+        sep-tags: ','
+        tags: |
+          type=raw,value=${{ steps.package-json.outputs.packageVersion }}
+          type=raw,value=${{ steps.package-json.outputs.packageVersion }}.{{sha}}
+
+
+  publish-image-rc:
+    needs: determine-tags
+
     uses: weseek/growi/.github/workflows/reusable-app-build-image.yml@rc/6.0.3-with-codebuild
     with:
-      tag-version: latest-rc
+      image-name: weseek/growi-codebuild-test
+      tags: ${{ needs.determine-tags.outputs.TAGS }}
+      tag-temporary: latest-rc
     secrets:
       AWS_ROLE_TO_ASSUME_FOR_OIDC: ${{ secrets.AWS_ROLE_TO_ASSUME_FOR_OIDC }}
       DOCKER_REGISTRY_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}

+ 15 - 19
.github/workflows/reusable-app-build-image.yml

@@ -3,7 +3,13 @@ name: Reusable build app container image workflow
 on:
   workflow_call:
     inputs:
-      tag-version:
+      tags:
+        type: string
+        required: true
+      image-name:
+        type: string
+        default: weseek/growi
+      tag-temporary:
         type: string
         default: latest
     secrets:
@@ -47,11 +53,11 @@ jobs:
         image-override: ${{ (matrix.platform == 'amd64' && 'aws/codebuild/standard:6.0') || 'aws/codebuild/amazonlinux2-aarch64-standard:2.0' }}
         environment-type-override: ${{ (matrix.platform == 'amd64' && 'LINUX_CONTAINER') || 'ARM_CONTAINER' }}
         env-vars-for-codebuild: |
-          TAG_VERSION,
-          TAG_SUFFIX
+          IMAGE_TAG,
+          IMAGE_TAG_GHCR
       env:
-        TAG_VERSION: ${{ inputs.tag-version }}
-        TAG_SUFFIX: ${{ matrix.platform }}
+        IMAGE_TAG: docker.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}
+        IMAGE_TAG_GHCR: ghcr.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}
 
 
   create-manifest:
@@ -69,25 +75,15 @@ jobs:
       uses: myrotvorets/info-from-package-json-action@1.2.0
       id: package-json
 
-    - name: Docker meta for base-image
-      id: meta-base-image
-      uses: docker/metadata-action@v4
-      with:
-        images: ${{ matrix.registry }}/weseek/growi-codebuild-test
-        sep-tags: ','
-        tags: |
-          type=raw,value=${{ steps.package-json.outputs.packageVersion }}
-          type=raw,value=${{ steps.package-json.outputs.packageVersion }}.{{sha}}
-
     - name: Docker meta for extra-images
       id: meta-extra-images
       uses: docker/metadata-action@v4
       with:
-        images: ${{ matrix.registry }}/weseek/growi-codebuild-test
+        images: ${{ matrix.registry }}/${{ inputs.image-name }}
         sep-tags: ','
         tags: |
-          type=raw,value=${{ inputs.tag-version }}-amd64
-          type=raw,value=${{ inputs.tag-version }}-arm64
+          type=raw,value=${{ inputs.tag-temporary }}-amd64
+          type=raw,value=${{ inputs.tag-temporary }}-arm64
 
     - name: Login to Container Registry
       uses: docker/login-action@v2
@@ -99,6 +95,6 @@ jobs:
     - name: Create and push manifest images for ${{ matrix.registry }}
       uses: Noelware/docker-manifest-action@master
       with:
-        base-image: ${{ steps.meta-base-image.outputs.tags }}
+        base-image: ${{ inputs.tags }}
         extra-images: ${{ steps.meta-extra-images.outputs.tags }}
         push: true

+ 4 - 8
packages/app/docker/codebuild/buildspec.yml

@@ -3,10 +3,8 @@ version: 0.2
 env:
   variables:
     DOCKER_BUILDKIT: 1
-    # IMAGE_NAME: weseek/growi
-    IMAGE_NAME: weseek/growi-codebuild-test
-    TAG_VERSION: latest
-    TAG_SUFFIX: ''
+    IMAGE_TAG: ''
+    IMAGE_TAG_GHCR: ''
   secrets-manager:
     DOCKER_REGISTRY_PASSWORD: growi/official-image-builder:DOCKER_REGISTRY_PASSWORD
     DOCKER_REGISTRY_ON_GITHUB_PAT: growi/official-image-builder:DOCKER_REGISTRY_ON_GITHUB_PAT
@@ -20,11 +18,9 @@ phases:
       - echo ${DOCKER_REGISTRY_ON_GITHUB_PAT} | docker login ghcr.io --username wsmoogle --password-stdin
   build:
     commands:
-      - export TAG="${IMAGE_NAME}:${TAG_VERSION}${TAG_SUFFIX+-}${TAG_SUFFIX}"
-      - export TAG_GHCR="ghcr.io/${IMAGE_NAME}:${TAG_VERSION}${TAG_SUFFIX+-}${TAG_SUFFIX}"
       # - docker build -t $TAG -f ./packages/app/docker/Dockerfile .
-      - docker build -t $TAG -f ./packages/app/docker/Dockerfile.nginx .
-      - docker tag $TAG $TAG_GHCR
+      - docker build -t ${TAG} -f ./packages/app/docker/Dockerfile.nginx .
+      - docker tag ${TAG} ${TAG_GHCR}
 
   post_build:
     commands: