fix: remove missing TF resource #245
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy Inventory Service | |
| on: | |
| push: | |
| paths: | |
| - src/inventory-service/** | |
| branches: | |
| - "main" | |
| pull_request: | |
| paths: | |
| - src/inventory-service/** | |
| branches: | |
| - "main" | |
| types: [opened, synchronize, reopened] | |
| workflow_dispatch: | |
| permissions: | |
| id-token: write | |
| contents: read | |
| jobs: | |
| unit-test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - name: Run unit tests | |
| shell: bash | |
| run: | | |
| cd src/inventory-service | |
| mvn test -pl inventory-api,inventory-core -q | |
| build-docker-image: | |
| runs-on: ubuntu-latest | |
| needs: unit-test | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df | |
| with: | |
| role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | |
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | |
| aws-region: "us-east-1" | |
| - name: Login to Amazon ECR public | |
| id: login-ecr-public | |
| uses: aws-actions/amazon-ecr-login@v2 | |
| with: | |
| registry-type: public | |
| - name: Set Commit Hash Environment Variables | |
| shell: bash | |
| run: | | |
| echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
| - name: Build | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: "us-east-1" | |
| run: | | |
| cd src/inventory-service | |
| make build | |
| - name: Build, tag, and push docker image to Amazon ECR Public | |
| env: | |
| REGISTRY: ${{ steps.login-ecr-public.outputs.registry }} | |
| REGISTRY_ALIAS: k4y9x2e7 | |
| REPOSITORY: dd-serverless-sample-app-inventory-java | |
| IMAGE_TAG: ${{ env.sha_short }} | |
| run: | | |
| cd src/inventory-service/inventory-api | |
| docker build -f src/main/docker/Dockerfile -t $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG . | |
| docker push $REGISTRY/$REGISTRY_ALIAS/$REPOSITORY:$IMAGE_TAG | |
| deploy-tf: | |
| runs-on: ubuntu-latest | |
| needs: build-docker-image | |
| concurrency: | |
| group: tf-inventory-service | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Terraform | |
| uses: hashicorp/setup-terraform@v2 | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df | |
| with: | |
| role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | |
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | |
| aws-region: ${{ vars.TF_AWS_REGION }} | |
| - name: Set Commit Hash Environment Variables | |
| shell: bash | |
| run: | | |
| echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
| - name: Build | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make build | |
| - name: Deploy ephemeral environment | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| TF_STATE_BUCKET_NAME: ${{secrets.TF_STATE_BUCKET_NAME}} | |
| run: | | |
| cd src/inventory-service | |
| make tf-apply | |
| - name: Sleep for 60 seconds | |
| run: sleep 60s | |
| shell: bash | |
| - name: Integration test ephemeral environment | |
| shell: bash | |
| env: | |
| ENV: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy ephemeral environment | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| TF_STATE_BUCKET_NAME: ${{secrets.TF_STATE_BUCKET_NAME}} | |
| run: | | |
| cd src/inventory-service | |
| make tf-destroy | |
| - name: Deploy to dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| TF_STATE_BUCKET_NAME: ${{secrets.TF_STATE_BUCKET_NAME}} | |
| run: | | |
| cd src/inventory-service | |
| make tf-apply | |
| - name: Sleep for 60 seconds | |
| if: github.event_name == 'push' | |
| run: sleep 60s | |
| shell: bash | |
| - name: Integration test dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| ENV: "dev" | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy dev | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.TF_AWS_REGION }} | |
| TF_STATE_BUCKET_NAME: ${{secrets.TF_STATE_BUCKET_NAME}} | |
| run: | | |
| cd src/inventory-service | |
| make tf-destroy | |
| deploy-cdk: | |
| runs-on: ubuntu-latest | |
| needs: build-docker-image | |
| concurrency: | |
| group: cdk-inventory-service | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: 'npm' | |
| cache-dependency-path: src/inventory-service/package-lock.json | |
| - name: Install CDK | |
| run: | | |
| npm install -g aws-cdk | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df | |
| with: | |
| role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | |
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | |
| aws-region: ${{ vars.CDK_AWS_REGION }} | |
| - name: Set Commit Hash Environment Variables | |
| shell: bash | |
| run: | | |
| echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
| - name: Build | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.CDK_PROD_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make build | |
| - name: Deploy ephemeral environment | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| run: | | |
| cd src/inventory-service | |
| make cdk-deploy | |
| - name: Integration test ephemeral environment | |
| shell: bash | |
| env: | |
| ENV: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| AWS_REGION: ${{ vars.CDK_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy ephemeral environment | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| run: | | |
| cd src/inventory-service | |
| make cdk-destroy | |
| - name: Deploy to dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| run: | | |
| cd src/inventory-service | |
| make cdk-deploy | |
| - name: Integration test dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| ENV: "dev" | |
| AWS_REGION: ${{ vars.CDK_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy dev | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| run: | | |
| cd src/inventory-service | |
| make cdk-destroy | |
| deploy-cdk-prod: | |
| runs-on: ubuntu-latest | |
| if: github.event_name == 'push' | |
| needs: [deploy-cdk] | |
| concurrency: | |
| group: cdk-prod-inventory-service | |
| cancel-in-progress: false | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: Install CDK | |
| run: | | |
| npm install -g aws-cdk | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df | |
| with: | |
| role-to-assume: ${{ secrets.PRODUCTION_AWS_ROLE_ARN }} | |
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | |
| aws-region: ${{ vars.CDK_PROD_AWS_REGION }} | |
| - name: Set Commit Hash Environment Variables | |
| shell: bash | |
| run: | | |
| echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
| - name: Build | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "prod" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.CDK_PROD_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make build | |
| - name: Deploy to prod | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: prod | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| run: | | |
| cd src/inventory-service | |
| make cdk-deploy | |
| - name: Integration test prod | |
| shell: bash | |
| env: | |
| ENV: prod | |
| VERSION: ${{ env.sha_short }} | |
| AWS_REGION: ${{ vars.CDK_PROD_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| deploy-sam: | |
| runs-on: ubuntu-latest | |
| needs: build-docker-image | |
| concurrency: | |
| group: sam-inventory-service | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: 'npm' | |
| cache-dependency-path: src/inventory-service/package-lock.json | |
| - name: Set up Java 25 for x64 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: "25" | |
| distribution: "corretto" | |
| architecture: x64 | |
| cache: 'maven' | |
| - uses: aws-actions/setup-sam@v1 | |
| - name: Configure AWS credentials | |
| uses: aws-actions/configure-aws-credentials@b47578312673ae6fa5b5096b330d9fbac3d116df | |
| with: | |
| role-to-assume: ${{ secrets.AWS_ROLE_ARN }} | |
| role-session-name: GitHub_to_AWS_via_FederatedOIDC | |
| aws-region: ${{ vars.SAM_AWS_REGION }} | |
| - name: Set Commit Hash Environment Variables | |
| shell: bash | |
| run: | | |
| echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" | |
| - name: Build | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.CDK_PROD_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make build | |
| - name: Deploy to ephemeral environment | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make sam | |
| - name: Integration test ephemeral environment | |
| shell: bash | |
| env: | |
| ENV: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| ENV: ${{ env.sha_short }} | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make sam-destroy | |
| - name: Deploy to dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make sam | |
| - name: Integration test dev | |
| if: github.event_name == 'push' | |
| shell: bash | |
| env: | |
| ENV: "dev" | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make integration-test | |
| - name: Destroy dev | |
| shell: bash | |
| if: always() | |
| env: | |
| COMMIT_HASH: ${{ env.sha_short }} | |
| VERSION: ${{ env.sha_short }} | |
| ENV: "dev" | |
| DD_API_KEY: ${{secrets.DD_API_KEY}} | |
| DD_SITE: ${{ vars.DD_SITE }} | |
| AWS_REGION: ${{ vars.SAM_AWS_REGION }} | |
| run: | | |
| cd src/inventory-service | |
| make sam-destroy |