From ad90d9eec84194f2bea2b8f2e49fa9844597da46 Mon Sep 17 00:00:00 2001 From: okankoAMZ <107267850+okankoAMZ@users.noreply.github.com> Date: Fri, 13 Dec 2024 13:00:03 -0800 Subject: [PATCH] End-to-End Build Workflow (#1416) Co-authored-by: Musa --- .github/workflows/build-test-artifacts.yml | 9 ++- .github/workflows/e2e-build.yml | 68 ++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/e2e-build.yml diff --git a/.github/workflows/build-test-artifacts.yml b/.github/workflows/build-test-artifacts.yml index ca12788fc7..e5fdb5cfd9 100644 --- a/.github/workflows/build-test-artifacts.yml +++ b/.github/workflows/build-test-artifacts.yml @@ -16,6 +16,12 @@ on: - '!.github/workflows/integration-test.yml' - '!.github/workflows/application-signals-e2e-test.yml' workflow_dispatch: + workflow_call: + inputs: + test-image-before-upload: + description: "Run Test on the new container image" + default: true + type: boolean concurrency: group: ${{ github.workflow }}-${{ github.ref_name }} @@ -87,6 +93,7 @@ jobs: StartIntegrationTests: needs: [ BuildAndUploadPackages, BuildAndUploadITAR, BuildAndUploadCN, BuildDocker ] + if: ${{inputs.test-image-before-upload == null || inputs.test-image-before-upload}} runs-on: ubuntu-latest steps: - run: gh workflow run integration-test.yml --ref ${{ github.ref_name }} --repo $GITHUB_REPOSITORY -f build_run_id=${{ github.run_id }} -f build_sha=${{ github.sha }} @@ -96,7 +103,7 @@ jobs: StartApplicationSignalsE2ETests: needs: [ BuildAndUploadPackages, BuildAndUploadITAR, BuildAndUploadCN, BuildDocker ] # Workflow only runs against main - if: ${{ contains(github.ref_name, 'main') }} + if: ${{ contains(github.ref_name, 'main') && (inputs.test-image-before-upload == null ||inputs.test-image-before-upload) }} runs-on: ubuntu-latest steps: - run: gh workflow run application-signals-e2e-test.yml --ref ${{ github.ref_name }} --repo $GITHUB_REPOSITORY -f build_run_id=${{ github.run_id }} -f build_sha=${{ github.sha }} diff --git a/.github/workflows/e2e-build.yml b/.github/workflows/e2e-build.yml new file mode 100644 index 0000000000..3acba7112f --- /dev/null +++ b/.github/workflows/e2e-build.yml @@ -0,0 +1,68 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: MIT + +name: Build End-to-End Test Artifacts +env: + OPERATOR_GITHUB_REPO_NAME: "aws/amazon-cloudwatch-agent-operator" +on: + workflow_dispatch: + inputs: + operator-branch: + required: false + type: string + description: 'Branch of the operator to test' + default: 'main' + workflow_call: + inputs: + operator-branch: + required: false + type: string + description: 'Branch of the operator to test' + default: 'main' + +jobs: + GetLatestOperatorCommitSHA: + runs-on: ubuntu-latest + outputs: + operator_commit_sha: ${{steps.get_latest_sha.outputs.operator_sha}} + operator_repo_name: ${{env.OPERATOR_GITHUB_REPO_NAME}} + steps: + - name: Checkout the target repo + uses: actions/checkout@v3 + with: + repository: ${{env.OPERATOR_GITHUB_REPO_NAME}} + ref: ${{inputs.operator-branch}} + path: operator-repo + + - name: Get latest commit SHA + id: get_latest_sha + run: | + cd operator-repo + latest_sha=$(git rev-parse HEAD) + echo "::set-output name=operator_sha::$latest_sha" + BuildAgent: + uses: ./.github/workflows/build-test-artifacts.yml + concurrency: + group: "Build-Test-Artifacts-${{github.ref_name}}" + cancel-in-progress: true + secrets: inherit + permissions: + id-token: write + contents: read + with: + test-image-before-upload: false + BuildOperator: + needs: [GetLatestOperatorCommitSHA] + uses: aws/amazon-cloudwatch-agent-operator/.github/workflows/build-and-upload.yml@main + concurrency: + group: ${{ github.workflow }}-operator-${{ inputs.operator-branch}} + cancel-in-progress: true + secrets: inherit + with: + tag: ${{needs.GetLatestOperatorCommitSHA.outputs.operator_commit_sha}} + target-sha: ${{needs.GetLatestOperatorCommitSHA.outputs.operator_commit_sha}} + repository: ${{needs.GetLatestOperatorCommitSHA.outputs.operator_repo_name}} + test-image-before-upload: false + + +