diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index e4a9dd93..76ed5bae 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -14,4 +14,4 @@ runs: with: node-version: 16 - name: Setup Gradle - uses: gradle/gradle-build-action@v2 \ No newline at end of file + uses: gradle/actions/setup-gradle@v3 \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..dc26cbf3 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,71 @@ +name: Build + +on: + release: + types: [published, edited] + push: + branches: + - main + +permissions: + id-token: write # Required for OIDC + contents: read + packages: write + +jobs: + build: + runs-on: ubuntu-latest + + env: + ecr_image_name: 374269020027.dkr.ecr.eu-west-2.amazonaws.com/delius-core-user-management + ghcr_image_name: ghcr.io/${{ github.repository_owner }}/delius-core-user-management + version: ${{ github.event.release.tag_name }} + + steps: + - uses: actions/checkout@v3 + + - uses: ./.github/actions/setup + + - name: Set version + run: | + version=${tag:-dev} + echo "version=$version" | tee -a "$GITHUB_ENV" + echo "ORG_GRADLE_PROJECT_version=$version" | tee -a "$GITHUB_ENV" + env: + tag: ${{ github.event.release.tag_name }} + + - name: Build image + run: ./gradlew clean build bootBuildImage --info --build-cache + + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ github.token }} + + - name: Push to GHCR + run: | + docker tag "delius-user-management:$version" "$ghcr_image_name:$version" + docker tag "delius-user-management:$version" "$ghcr_image_name:latest" + docker push "$ghcr_image_name:$version" + docker push "$ghcr_image_name:latest" + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::326912278139:role/modernisation-platform-oidc-cicd + role-session-name: delius-user-management-${{ github.run_number }} + aws-region: eu-west-2 + + - name: Login to Amazon ECR + uses: aws-actions/amazon-ecr-login@v2 + with: + registries: "374269020027" + + - name: Push to Amazon ECR + run: | + docker tag "delius-user-management:$version" "$ecr_image_name:$version" + docker tag "delius-user-management:$version" "$ecr_image_name:latest" + docker push "$ecr_image_name:$version" + docker push "$ecr_image_name:latest" \ No newline at end of file