reusable-app-build-image.yml 1.5 KB

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