Browse Source

refactor buildspec

Yuki Takei 3 years ago
parent
commit
2e82115f19

+ 6 - 7
packages/app/docker/codebuild/buildspec-image.yml

@@ -4,8 +4,7 @@ env:
   variables:
   variables:
     DOCKER_BUILDKIT: 1
     DOCKER_BUILDKIT: 1
     IMAGE_NAME: weseek/growi
     IMAGE_NAME: weseek/growi
-    # TAG_VERSION: latest
-    TAG_VERSION: codebuildtest
+    TAG_TMP: codebuildtmp
     TAG_SUFFIX: amd64
     TAG_SUFFIX: amd64
   secrets-manager:
   secrets-manager:
     DOCKER_REGISTRY_PASSWORD: growi/official-image-builder:DOCKER_REGISTRY_PASSWORD
     DOCKER_REGISTRY_PASSWORD: growi/official-image-builder:DOCKER_REGISTRY_PASSWORD
@@ -20,15 +19,15 @@ phases:
       - echo ${DOCKER_REGISTRY_ON_GITHUB_PAT} | docker login ghcr.io --username wsmoogle --password-stdin
       - echo ${DOCKER_REGISTRY_ON_GITHUB_PAT} | docker login ghcr.io --username wsmoogle --password-stdin
   build:
   build:
     commands:
     commands:
-      - export IMAGE_TAG="${IMAGE_NAME}:${TAG_VERSION}${TAG_SUFFIX+-}${TAG_SUFFIX}"
-      - export IMAGE_TAG_GHCR="ghcr.io/${IMAGE_NAME}:${TAG_VERSION}${TAG_SUFFIX+-}${TAG_SUFFIX}"
+      - export TAG="${IMAGE_NAME}:${TAG_TMP}${TAG_SUFFIX+-}${TAG_SUFFIX}"
+      - export TAG_GHCR="ghcr.io/${IMAGE_NAME}:${TAG_TMP}${TAG_SUFFIX+-}${TAG_SUFFIX}"
       - docker build -t $IMAGE_TAG -f ./packages/app/docker/Dockerfile .
       - docker build -t $IMAGE_TAG -f ./packages/app/docker/Dockerfile .
-      - docker tag $IMAGE_TAG $IMAGE_TAG_GHCR
+      - docker tag $TAG $GHCR
 
 
   post_build:
   post_build:
     commands:
     commands:
-      - docker push $IMAGE_TAG
-      # - docker push $IMAGE_TAG_GHCR
+      - docker push $TAG
+      # - docker push $TAG_GHCR
 
 
 cache:
 cache:
   paths:
   paths:

+ 9 - 7
packages/app/docker/codebuild/buildspec-manifest.yml

@@ -3,8 +3,8 @@ env:
   variables:
   variables:
     IMAGE_HOST: ''
     IMAGE_HOST: ''
     IMAGE_NAME: weseek/growi
     IMAGE_NAME: weseek/growi
-    # TAG_VERSION: latest
-    TAG_VERSION: codebuildtest
+    TAG_TMP: codebuildtmp
+    TAGS: latest
     SECRETS_JSON_KEY: DOCKER_REGISTRY_PASSWORD # DOCKER_REGISTRY_PASSWORD or DOCKER_REGISTRY_ON_GITHUB_PASSWORD
     SECRETS_JSON_KEY: DOCKER_REGISTRY_PASSWORD # DOCKER_REGISTRY_PASSWORD or DOCKER_REGISTRY_ON_GITHUB_PASSWORD
   secrets-manager:
   secrets-manager:
     DOCKER_REGISTRY_PASSWORD: growi/official-image-builder:$SECRETS_JSON_KEY
     DOCKER_REGISTRY_PASSWORD: growi/official-image-builder:$SECRETS_JSON_KEY
@@ -14,11 +14,13 @@ phases:
       - echo ${DOCKER_REGISTRY_PASSWORD} | docker login --username wsmoogle --password-stdin ${IMAGE_HOST}
       - echo ${DOCKER_REGISTRY_PASSWORD} | docker login --username wsmoogle --password-stdin ${IMAGE_HOST}
   build:
   build:
     commands:
     commands:
-      - export IMAGE_TAG="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_VERSION}"
-      - export IMAGE_TAG_AMD64="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_VERSION}-amd64"
-      - export IMAGE_TAG_ARM64="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_VERSION}-arm64"
-      - docker manifest create $IMAGE_TAG $IMAGE_TAG_AMD64 $IMAGE_TAG_ARM64
+      - export TMP_TAG="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_TMP}"
+      - export TMP_TAG_AMD64="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_TMP}-amd64"
+      - export TMP_TAG_ARM64="${IMAGE_HOST}${IMAGE_HOST:+/}${IMAGE_NAME}:${TAG_TMP}-arm64"
+      - docker manifest create $TMP_TAG $TMP_TAG_AMD64 $TMP_TAG_ARM64
 
 
   post_build:
   post_build:
     commands:
     commands:
-      - docker manifest push $IMAGE_TAG
+      - docker manifest push ${IMAGE_TAG}
+      # remove 
+      # - docker run --rm -it lumir/remove-dockerhub-tag --user wsmoogle --pass ${DOCKER_REGISTRY_PASSWORD} ${TMP_TAG} ${TMP_TAG_AMD64} ${TMP_TAG_ARM64}

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

@@ -9,6 +9,7 @@ batch:
         image: aws/codebuild/standard:6.0
         image: aws/codebuild/standard:6.0
         type: LINUX_CONTAINER
         type: LINUX_CONTAINER
         variables:
         variables:
+          TAG_TMP: codebuildtmp
           TAG_SUFFIX: amd64
           TAG_SUFFIX: amd64
     - identifier: build_arm64
     - identifier: build_arm64
       buildspec: packages/app/docker/codebuild/buildspec-image.yml
       buildspec: packages/app/docker/codebuild/buildspec-image.yml
@@ -16,12 +17,14 @@ batch:
         image: aws/codebuild/amazonlinux2-aarch64-standard:2.0
         image: aws/codebuild/amazonlinux2-aarch64-standard:2.0
         type: ARM_CONTAINER
         type: ARM_CONTAINER
         variables:
         variables:
+          TAG_TMP: codebuildtmp
           TAG_SUFFIX: arm64
           TAG_SUFFIX: arm64
     # create manifest
     # create manifest
     - identifier: create_manifest_dockerhub
     - identifier: create_manifest_dockerhub
       buildspec: packages/app/docker/codebuild/buildspec-manifest.yml
       buildspec: packages/app/docker/codebuild/buildspec-manifest.yml
       env:
       env:
         variables:
         variables:
+          TAG_VERSION: codebuildtmp
           SECRETS_JSON_KEY: DOCKER_REGISTRY_PASSWORD
           SECRETS_JSON_KEY: DOCKER_REGISTRY_PASSWORD
       depend-on:
       depend-on:
         - build_amd64
         - build_amd64
@@ -31,6 +34,7 @@ batch:
     #   env:
     #   env:
     #     variables:
     #     variables:
     #       IMAGE_HOST: ghcr.io
     #       IMAGE_HOST: ghcr.io
+    #       TAG_VERSION: codebuildtmp
     #       SECRETS_JSON_KEY: DOCKER_REGISTRY_ON_GITHUB_PASSWORD
     #       SECRETS_JSON_KEY: DOCKER_REGISTRY_ON_GITHUB_PASSWORD
     #   depend-on:
     #   depend-on:
     #     - build_amd64
     #     - build_amd64