reusable-app-build-image.yml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. name: Reusable build app container image workflow
  2. on:
  3. workflow_call:
  4. inputs:
  5. source-version:
  6. type: string
  7. default: ${{ github.sha }}
  8. image-name:
  9. type: string
  10. default: weseek/growi
  11. tag-temporary:
  12. type: string
  13. default: latest
  14. secrets:
  15. AWS_ROLE_TO_ASSUME_FOR_OIDC:
  16. required: true
  17. jobs:
  18. build-image:
  19. runs-on: ubuntu-latest
  20. # These permissions are needed to interact with GitHub's OIDC Token endpoint.
  21. permissions:
  22. id-token: write
  23. contents: write
  24. strategy:
  25. matrix:
  26. platform: [amd64, arm64]
  27. steps:
  28. - uses: actions/checkout@v3
  29. - name: Configure AWS Credentials
  30. uses: aws-actions/configure-aws-credentials@v1
  31. with:
  32. aws-region: ap-northeast-1
  33. role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_FOR_OIDC }}
  34. role-session-name: SessionForReleaseGROWI-RC
  35. # - name: Run CodeBuild
  36. # uses: aws-actions/aws-codebuild-run-build@v1
  37. # with:
  38. # project-name: growi-official-image-builder
  39. # image-override: ${{ (matrix.platform == 'amd64' && 'aws/codebuild/standard:6.0') || 'aws/codebuild/amazonlinux2-aarch64-standard:2.0' }}
  40. # environment-type-override: ${{ (matrix.platform == 'amd64' && 'LINUX_CONTAINER') || 'ARM_CONTAINER' }}
  41. # env-vars-for-codebuild: |
  42. # IMAGE_TAG,
  43. # IMAGE_TAG_GHCR
  44. # env:
  45. # IMAGE_TAG: docker.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}
  46. # IMAGE_TAG_GHCR: ghcr.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}
  47. - name: Run CodeBuild
  48. uses: dark-mechanicum/aws-codebuild@v1
  49. with:
  50. projectName: growi-official-image-builder
  51. env:
  52. CODEBUILD__sourceVersion: ${{ inputs.source-version }}
  53. CODEBUILD__imageOverride: ${{ (matrix.platform == 'amd64' && 'aws/codebuild/standard:6.0') || 'aws/codebuild/amazonlinux2-aarch64-standard:2.0' }}
  54. CODEBUILD__environmentTypeOverride: ${{ (matrix.platform == 'amd64' && 'LINUX_CONTAINER') || 'ARM_CONTAINER' }}
  55. CODEBUILD__environmentVariablesOverride: '[
  56. { "name": "IMAGE_TAG", "type": "PLAINTEXT", "value": "docker.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}" },
  57. { "name": "IMAGE_TAG_GHCR", "type": "PLAINTEXT", "value": "ghcr.io/${{ inputs.image-name }}:${{ inputs.tag-temporary }}-${{ matrix.platform }}" }
  58. ]'