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

feat: add matrix strategy for building and publishing Docker images for weseek and growilabs

Shun Miyazawa 6 месяцев назад
Родитель
Сommit
74e50db866
1 измененных файлов с 31 добавлено и 6 удалено
  1. 31 6
      .github/workflows/release.yml

+ 31 - 6
.github/workflows/release.yml

@@ -107,10 +107,14 @@ jobs:
   build-app-image:
   build-app-image:
     needs: create-github-release
     needs: create-github-release
 
 
+    strategy:
+      matrix:
+        image-name: [weseek/growi, growilabs/growi]
+
     uses: growilabs/growi/.github/workflows/reusable-app-build-image.yml@master
     uses: growilabs/growi/.github/workflows/reusable-app-build-image.yml@master
     with:
     with:
       source-version: refs/tags/v${{ needs.create-github-release.outputs.RELEASED_VERSION }}
       source-version: refs/tags/v${{ needs.create-github-release.outputs.RELEASED_VERSION }}
-      image-name: weseek/growi
+      image-name: ${{ matrix.image-name }}
       tag-temporary: latest
       tag-temporary: latest
     secrets:
     secrets:
       AWS_ROLE_TO_ASSUME_FOR_OIDC: ${{ secrets.AWS_ROLE_TO_ASSUME_FOR_OIDC }}
       AWS_ROLE_TO_ASSUME_FOR_OIDC: ${{ secrets.AWS_ROLE_TO_ASSUME_FOR_OIDC }}
@@ -118,19 +122,40 @@ jobs:
   publish-app-image:
   publish-app-image:
     needs: [determine-tags, build-app-image]
     needs: [determine-tags, build-app-image]
 
 
+    strategy:
+      matrix:
+        include:
+          - image-name: weseek/growi
+            username: wsmoogle
+            password: DOCKER_REGISTRY_PASSWORD
+          - image-name: growilabs/growi
+            username: growimoogle
+            password: DOCKER_REGISTRY_PASSWORD_GROWIMOOGLE
+
     uses: growilabs/growi/.github/workflows/reusable-app-create-manifests.yml@master
     uses: growilabs/growi/.github/workflows/reusable-app-create-manifests.yml@master
     with:
     with:
       tags: ${{ needs.determine-tags.outputs.TAGS }}
       tags: ${{ needs.determine-tags.outputs.TAGS }}
       registry: docker.io
       registry: docker.io
-      image-name: weseek/growi
+      image-name: ${{ matrix.image-name }}
+      username: ${{ matrix.username }}
       tag-temporary: latest
       tag-temporary: latest
     secrets:
     secrets:
-      DOCKER_REGISTRY_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
+      DOCKER_REGISTRY_PASSWORD: ${{ secrets[matrix.password] }}
 
 
   post-publish:
   post-publish:
     needs: [create-github-release, publish-app-image]
     needs: [create-github-release, publish-app-image]
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
 
 
+    strategy:
+      matrix:
+        include:
+          - repository: weseek/growi
+            username: wsmoogle
+            password: DOCKER_REGISTRY_PASSWORD
+          - repository: growilabs/growi
+            username: growimoogle
+            password: DOCKER_REGISTRY_PASSWORD_GROWIMOOGLE
+
     steps:
     steps:
     - uses: actions/checkout@v4
     - uses: actions/checkout@v4
       with:
       with:
@@ -139,9 +164,9 @@ jobs:
     - name: Update Docker Hub Description
     - name: Update Docker Hub Description
       uses: peter-evans/dockerhub-description@v4
       uses: peter-evans/dockerhub-description@v4
       with:
       with:
-        username: wsmoogle
-        password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
-        repository: weseek/growi
+        username: ${{ matrix.username }}
+        password: ${{ secrets[matrix.password] }}
+        repository: ${{ matrix.repository }}
         readme-filepath: ./apps/app/docker/README.md
         readme-filepath: ./apps/app/docker/README.md
 
 
     - name: Slack Notification
     - name: Slack Notification