From 34f4d15046d7c3fac6ef26cb8dcda59d81396873 Mon Sep 17 00:00:00 2001 From: Mitali Salvi Date: Sat, 28 Oct 2023 23:23:54 -0400 Subject: [PATCH] testing --- .github/workflows/integration-test.yml | 961 +------------------------ .github/workflows/test-build.yml | 224 +----- 2 files changed, 23 insertions(+), 1162 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index ef27fe34d5..3691e2c77c 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -13,7 +13,7 @@ env: ECR_INTEGRATION_TEST_REPO: "cwagent-integration-test" CWA_GITHUB_TEST_REPO_NAME: "aws/amazon-cloudwatch-agent-test" CWA_GITHUB_TEST_REPO_URL: "https://github.com/aws/amazon-cloudwatch-agent-test.git" - CWA_GITHUB_TEST_REPO_BRANCH: "main" + CWA_GITHUB_TEST_REPO_BRANCH: "enhanceCI" on: push: @@ -110,207 +110,6 @@ jobs: echo "eks_daemon_matrix: ${{ steps.set-matrix.outputs.eks_daemon_matrix }}" echo "eks_deployment_matrix: ${{ steps.set-matrix.outputs.eks_deployment_matrix }}" - CloudformationTest: - needs: [BuildAndUpload, GenerateTestMatrix] - name: 'CFTest' - runs-on: ubuntu-latest - strategy: - fail-fast: false - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - path: test - - - name: Set up Go 1.x - uses: actions/setup-go@v2 - with: - go-version: ~1.21.1 - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: cf-integration-test - uses: actions/cache@v2 - with: - path: go.mod - key: "cf-integration-${{ github.sha }}-test" - - - name: Test cf - if: steps.ec2-linux-integration-test.outputs.cache-hit != 'true' - run: | - cd test/test/cloudformation - go test -timeout 1h -package_path=s3://${S3_INTEGRATION_BUCKET}/integration-test/binary/${{ github.sha }}/linux/amd64/amazon-cloudwatch-agent.rpm -iam_role=${CF_IAM_ROLE} -key_name=${CF_KEY_NAME} -metric_name=mem_used_percent - - StartLocalStack: - name: 'StartLocalStack' - runs-on: ubuntu-latest - defaults: - run: - working-directory: terraform/ec2/localstack - outputs: - local_stack_host_name: ${{ steps.localstack.outputs.local_stack_host_name }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Verify Terraform version - run: terraform --version - - - name: Terraform init - run: terraform init - - - name: Terraform apply - id: localstack - run: > - echo run terraform and execute test code && - terraform apply --auto-approve - -var="ssh_key_value=${PRIVATE_KEY}" - -var="github_test_repo=${{env.CWA_GITHUB_TEST_REPO_URL}}" - -var="cwa_github_sha=${GITHUB_SHA}" - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" - -var="ssh_key_name=${KEY_NAME}" && - LOCAL_STACK_HOST_NAME=$(terraform output -raw public_dns) && - echo $LOCAL_STACK_HOST_NAME && - echo "::set-output name=local_stack_host_name::$LOCAL_STACK_HOST_NAME" && - aws s3 cp terraform.tfstate s3://${S3_INTEGRATION_BUCKET}/integration-test/local-stack-terraform-state/${GITHUB_SHA}/terraform.tfstate - - EC2NvidiaGPUIntegrationTest: - needs: [ BuildAndUpload, StartLocalStack, GenerateTestMatrix ] - name: 'EC2NVIDIAGPUIntegrationTest' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_gpu_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: ec2-linux-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: ec2-nvidia-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Echo Test Info - run: echo run on ec2 instance os ${{ matrix.arrays.os }} arc ${{ matrix.arrays.arc }} test dir ${{ matrix.arrays.test_dir }} - - - name: Verify Terraform version - run: terraform --version - - # nick-fields/retry@v2 starts at base dir - - name: Terraform apply - if: ${{ matrix.arrays.family == 'linux' && steps.ec2-nvidia-integration-test.outputs.cache-hit != 'true' }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 30 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ec2/linux - fi - - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" -var="github_test_repo=${{env.CWA_GITHUB_TEST_REPO_URL}}" \ - -var="test_name=${{ matrix.arrays.os }}" \ - -var="cwa_github_sha=${GITHUB_SHA}" -var="install_agent=${{ matrix.arrays.installAgentCommand }}" \ - -var="github_test_repo_branch=${{env.CWA_GITHUB_TEST_REPO_BRANCH}}" \ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="user=${{ matrix.arrays.username }}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="ca_cert_path=${{ matrix.arrays.caCertPath }}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="binary_name=${{ matrix.arrays.binaryName }}" \ - -var="local_stack_host_name=${{ needs.StartLocalStack.outputs.local_stack_host_name }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ - -var="ssh_key_name=${KEY_NAME}" \ - -var="test_dir=${{ matrix.arrays.test_dir }}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - name: Terraform apply - if: ${{ matrix.arrays.family == 'window' && steps.ec2-nvidia-integration-test.outputs.cache-hit != 'true' }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 30 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ec2/win - fi - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" -var="ssh_key_name=${KEY_NAME}" \ - -var="github_repo=${{env.CWA_GITHUB_TEST_REPO_URL}}" \ - -var="cwa_github_sha=${GITHUB_SHA}" -var="ami=${{ matrix.arrays.ami }}" \ - -var="test_dir=${{ matrix.arrays.test_dir }}" \ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="github_test_repo=${{env.CWA_GITHUB_TEST_REPO_URL}}" \ - -var="github_test_repo_branch=${{env.CWA_GITHUB_TEST_REPO_BRANCH}}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - #This is here just in case workflow cancel - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - elif if "${{ matrix.arrays.os }}" == window; then - cd terraform/ec2/win - else - cd terraform/ec2/linux - fi - terraform destroy --auto-approve - OutputEnvVariables: name: 'OutputEnvVariables' runs-on: ubuntu-latest @@ -372,14 +171,14 @@ jobs: localstack_host: ${{needs.StartLocalStack.outputs.local_stack_host_name}} secrets: inherit - EC2WinIntegrationTest: - needs: [BuildAndUpload, GenerateTestMatrix] - name: 'EC2WinIntegrationTest' + EKSIntegrationTest: + name: 'EKSIntegrationTest' runs-on: ubuntu-latest + needs: [ BuildAndUpload, GenerateTestMatrix ] strategy: fail-fast: false matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_matrix) }} + arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.eks_daemon_matrix) }} permissions: id-token: write contents: read @@ -397,129 +196,48 @@ jobs: role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - name: Cache if success - id: ec2-win-integration-test + id: eks-ec2-integration-test uses: actions/cache@v3 with: path: go.mod - key: ec2-win-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} + key: eks-ec2-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.test_dir }} - - name: Echo Test Info - run: echo run on ec2 instance os ${{ matrix.arrays.os }} use ssm ${{ matrix.arrays.useSSM }} test ${{ matrix.arrays.test_dir }} + - name: Login ECR + id: login-ecr + if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' + uses: aws-actions/amazon-ecr-login@v1 - name: Verify Terraform version + if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' run: terraform --version - # nick-fields/retry@v2 starts at base dir - name: Terraform apply - if: steps.ec2-win-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 30 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ec2/win - fi - terraform init - if terraform apply --auto-approve \ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="ssh_key_value=${PRIVATE_KEY}" -var="ssh_key_name=${KEY_NAME}" \ - -var="test_name=${{ matrix.arrays.os }}" \ - -var="cwa_github_sha=${GITHUB_SHA}" \ - -var="test_dir=${{ matrix.arrays.test_dir }}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="use_ssm=${{ matrix.arrays.useSSM }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" ; then - terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - #This is here just in case workflow cancel - - name: Terraform destroy - if: ${{ cancelled() || failure() }} + if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' uses: nick-fields/retry@v2 with: max_attempts: 3 - timeout_minutes: 8 + timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster retry_wait_seconds: 5 command: | if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then cd "${{ matrix.arrays.terraform_dir }}" else - cd terraform/ec2/win + cd terraform/eks/daemon fi - terraform destroy --auto-approve - - EC2DarwinIntegrationTest: - needs: [BuildAndUpload, GenerateTestMatrix] - name: 'EC2DarwinIntegrationTest' - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_mac_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: ec2-mac-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: ec2-mac-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Echo OS - run: echo run on ec2 instance os ${{ matrix.arrays.os }} - - - name: Verify Terraform version - run: terraform --version - # nick-fields/retry@v2 starts at base dir - - name: Terraform apply - if: steps.ec2-mac-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 30 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ec2/mac - fi terraform init if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" -var="ssh_key_name=${KEY_NAME}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="cwa_github_sha=${GITHUB_SHA}" -var="ami=${{ matrix.arrays.ami }}" \ - -var="test_dir=${{ matrix.arrays.test_dir }}" \ - -var="license_manager_arn=${{ env.LICENSE_MANAGER_ARN }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" ; then + -var="test_dir=${{ matrix.arrays.test_dir }}"\ + -var="cwagent_image_repo=${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_INTEGRATION_TEST_REPO }}" \ + -var="cwagent_image_tag=${{ github.sha }}" \ + -var="ami_type=${{ matrix.arrays.ami }}" \ + -var="instance_type=${{ matrix.arrays.instanceType }}" \ + -var="k8s_version=${{ matrix.arrays.k8s_version }}"; then terraform destroy -auto-approve else terraform destroy -auto-approve && exit 1 fi - #This is here just in case workflow cancel - name: Terraform destroy if: ${{ cancelled() || failure() }} uses: nick-fields/retry@v2 @@ -531,642 +249,7 @@ jobs: if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then cd "${{ matrix.arrays.terraform_dir }}" else - cd terraform/ec2/mac + cd terraform/eks/daemon fi terraform destroy --auto-approve - StopLocalStack: - name: 'StopLocalStack' - runs-on: ubuntu-latest - if: ${{ always() }} - needs: [ StartLocalStack, EC2LinuxIntegrationTest, LinuxOnPremIntegrationTest ] - defaults: - run: - working-directory: terraform/ec2/localstack - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Copy state - run: aws s3 cp s3://${S3_INTEGRATION_BUCKET}/integration-test/local-stack-terraform-state/${GITHUB_SHA}/terraform.tfstate . - - - name: Verify Terraform version - run: terraform --version - - - name: Terraform init - run: terraform init - - - name: Terraform destroy - run: terraform destroy --auto-approve - - ECSEC2IntegrationTest: - name: 'ECSEC2IntegrationTest' - runs-on: ubuntu-latest - needs: [ BuildAndUpload, GenerateTestMatrix ] - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ecs_ec2_launch_daemon_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: ecs-ec2-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: ecs-ec2-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.test_dir }} - - - name: Login ECR - id: login-ecr - if: steps.ecs-ec2-integration-test.outputs.cache-hit != 'true' - uses: aws-actions/amazon-ecr-login@v1 - - - name: Verify Terraform version - if: steps.ecs-ec2-integration-test.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.ecs-ec2-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 15 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ecs_ec2/daemon - fi - - terraform init - if terraform apply --auto-approve\ - -var="test_dir=${{ matrix.arrays.test_dir }}"\ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="cwagent_image_repo=${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_INTEGRATION_TEST_REPO }}"\ - -var="cwagent_image_tag=${{ github.sha }}"\ - -var="ec2_instance_type=${{ matrix.arrays.instanceType }}" \ - -var="metadataEnabled=${{ matrix.arrays.metadataEnabled }}" \ - -var="ami=${{ matrix.arrays.ami }}" ; then - terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ecs_ec2/daemon - fi - terraform destroy --auto-approve - - ECSFargateIntegrationTest: - name: 'ECSFargateIntegrationTest' - runs-on: ubuntu-latest - needs: [BuildAndUpload, GenerateTestMatrix] - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ecs_fargate_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: ecs-fargate-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: ecs-fargate-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.test_dir }} - - - name: Login ECR - id: login-ecr - if: steps.ecs-fargate-integration-test.outputs.cache-hit != 'true' - uses: aws-actions/amazon-ecr-login@v1 - - - name: Verify Terraform version - if: steps.ecs-fargate-integration-test.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.ecs-fargate-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 15 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ecs_fargate/linux - fi - - terraform init - if terraform apply --auto-approve\ - -var="test_dir=${{ matrix.arrays.test_dir }}"\ - -var="cwagent_image_repo=${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_INTEGRATION_TEST_REPO }}"\ - -var="cwagent_image_tag=${{ github.sha }}"; then - terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/ecs_fargate/linux - fi - terraform destroy --auto-approve - - EKSIntegrationTest: - name: 'EKSIntegrationTest' - runs-on: ubuntu-latest - needs: [ BuildAndUpload, GenerateTestMatrix ] - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.eks_daemon_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: eks-ec2-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: eks-ec2-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.test_dir }} - - - name: Login ECR - id: login-ecr - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - uses: aws-actions/amazon-ecr-login@v1 - - - name: Verify Terraform version - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/eks/daemon - fi - - terraform init - if terraform apply --auto-approve \ - -var="test_dir=${{ matrix.arrays.test_dir }}"\ - -var="cwagent_image_repo=${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_INTEGRATION_TEST_REPO }}" \ - -var="cwagent_image_tag=${{ github.sha }}" \ - -var="ami_type=${{ matrix.arrays.ami }}" \ - -var="instance_type=${{ matrix.arrays.instanceType }}" \ - -var="k8s_version=${{ matrix.arrays.k8s_version }}"; then - terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/eks/daemon - fi - terraform destroy --auto-approve - - EKSPrometheusIntegrationTest: - name: 'EKSPrometheusIntegrationTest' - runs-on: ubuntu-latest - needs: [ BuildAndUpload, GenerateTestMatrix ] - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.eks_deployment_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: eks-ec2-integration-test - uses: actions/cache@v3 - with: - path: go.mod - key: eks-ec2-integration-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.test_dir }} - - - name: Login ECR - id: login-ecr - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - uses: aws-actions/amazon-ecr-login@v1 - - - name: Verify Terraform version - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.eks-ec2-integration-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 60 # EKS takes about 20 minutes to spin up a cluster and service on the cluster - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/eks/deployment - fi - - terraform init - if terraform apply --auto-approve \ - -var="test_dir=${{ matrix.arrays.test_dir }}"\ - -var="cwagent_image_repo=${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_INTEGRATION_TEST_REPO }}" \ - -var="cwagent_image_tag=${{ github.sha }}" \ - -var="k8s_version=${{ matrix.arrays.k8s_version }}"; then - terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: | - if [ "${{ matrix.arrays.terraform_dir }}" != "" ]; then - cd "${{ matrix.arrays.terraform_dir }}" - else - cd terraform/eks/deployment - fi - terraform destroy --auto-approve - - PerformanceTrackingTest: - name: "PerformanceTrackingTest" - needs: [BuildAndUpload, GenerateTestMatrix] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_performance_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: performance-tracking - uses: actions/cache@v3 - with: - path: go.mod - key: performance-tracking-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Verify Terraform version - if: steps.performance-tracking.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.performance-tracking.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 1 - timeout_minutes: 60 - retry_wait_seconds: 5 - command: | - cd terraform/performance - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" \ - -var="cwa_github_sha=${GITHUB_SHA}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ - -var="ssh_key_name=${KEY_NAME}" \ - -var="values_per_minute=${{ matrix.arrays.values_per_minute}}"\ - -var="family=${{ matrix.arrays.family}}"\ - -var="test_dir=${{ matrix.arrays.test_dir }}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: cd terraform/performance && terraform destroy --auto-approve - - EC2WinPerformanceTest: - name: "EC2WinPerformanceTest" - needs: [ BuildAndUpload, GenerateTestMatrix ] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_performance_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: performance-tracking - uses: actions/cache@v3 - with: - path: go.mod - key: performance-tracking-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Verify Terraform version - if: steps.performance-tracking.outputs.cache-hit != 'true' - run: terraform --version - - - name: Terraform apply - if: steps.performance-tracking.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 1 - timeout_minutes: 60 - retry_wait_seconds: 5 - command: | - cd terraform/performance - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" \ - -var="cwa_github_sha=${GITHUB_SHA}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ - -var="ssh_key_name=${KEY_NAME}" \ - -var="values_per_minute=${{ matrix.arrays.values_per_minute}}"\ - -var="family=${{ matrix.arrays.family}}"\ - -var="test_dir=${{ matrix.arrays.test_dir }}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: cd terraform/performance && terraform destroy --auto-approve - - StressTrackingTest: - name: "StressTrackingTest" - needs: [BuildAndUpload, GenerateTestMatrix] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_stress_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: stress-tracking - uses: actions/cache@v3 - with: - path: go.mod - key: stress-tracking-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Verify Terraform version - if: steps.stress-tracking.outputs.cache-hit != 'true' - run: terraform --version - - - name: Echo Test Info - run: echo run on ec2 instance os ${{ matrix.arrays.os }} arc ${{ matrix.arrays.arc }} test dir ${{ matrix.arrays.test_dir }} values per minute ${{ matrix.arrays.values_per_minute }} - - - name: Terraform apply - if: steps.stress-tracking.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 1 - timeout_minutes: 60 - retry_wait_seconds: 5 - command: | - cd terraform/stress - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" \ - -var="cwa_github_sha=${GITHUB_SHA}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ - -var="ssh_key_name=${KEY_NAME}" \ - -var="values_per_minute=${{ matrix.arrays.values_per_minute}}"\ - -var="test_dir=${{ matrix.arrays.test_dir }}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: cd terraform/stress && terraform destroy --auto-approve - - EC2WinStressTrackingTest: - name: "EC2WinStressTrackingTest" - needs: [BuildAndUpload, GenerateTestMatrix] - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - arrays: ${{ fromJson(needs.GenerateTestMatrix.outputs.ec2_windows_stress_matrix) }} - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - ref: ${{env.CWA_GITHUB_TEST_REPO_BRANCH}} - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ env.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - role-duration-seconds: ${{ env.TERRAFORM_AWS_ASSUME_ROLE_DURATION }} - - - name: Cache if success - id: ec2-win-stress-tracking-test - uses: actions/cache@v3 - with: - path: go.mod - key: ec2-win-stress-tracking-test-${{ github.sha }}-${{ matrix.arrays.os }}-${{ matrix.arrays.arc }}-${{ matrix.arrays.test_dir }} - - - name: Verify Terraform version - if: steps.ec2-win-stress-tracking-test.outputs.cache-hit != 'true' - run: terraform --version - - - name: Echo Test Info - run: echo run on ec2 instance os ${{ matrix.arrays.os }} arc ${{ matrix.arrays.arc }} test dir ${{ matrix.arrays.test_dir }} values per minute ${{ matrix.arrays.values_per_minute }} - - - name: Terraform apply - if: steps.ec2-win-stress-tracking-test.outputs.cache-hit != 'true' - uses: nick-fields/retry@v2 - with: - max_attempts: 1 - timeout_minutes: 60 - retry_wait_seconds: 5 - command: | - cd terraform/stress - terraform init - if terraform apply --auto-approve \ - -var="ssh_key_value=${PRIVATE_KEY}" \ - -var="cwa_github_sha=${GITHUB_SHA}" \ - -var="ami=${{ matrix.arrays.ami }}" \ - -var="arc=${{ matrix.arrays.arc }}" \ - -var="s3_bucket=${S3_INTEGRATION_BUCKET}" \ - -var="ssh_key_name=${KEY_NAME}" \ - -var="values_per_minute=${{ matrix.arrays.values_per_minute}}"\ - -var="family=${{ matrix.arrays.family}}"\ - -var="test_dir=${{ matrix.arrays.test_dir }}" ; then terraform destroy -auto-approve - else - terraform destroy -auto-approve && exit 1 - fi - - - name: Terraform destroy - if: ${{ cancelled() || failure() }} - uses: nick-fields/retry@v2 - with: - max_attempts: 3 - timeout_minutes: 8 - retry_wait_seconds: 5 - command: cd terraform/stress && terraform destroy --auto-approve diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index def7f549b8..74162a3b1b 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -144,226 +144,4 @@ jobs: push: true tags: | ${{ steps.login-ecr.outputs.registry }}/${{ inputs.ContainerRepositoryNameAndTag }} - platforms: linux/amd64, linux/arm64 - - MakeMSIZip: - name: 'MakeMSIZip' - runs-on: ubuntu-latest - needs: [MakeBinary] - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - - - name: Set up Go 1.x - uses: actions/setup-go@v4 - with: - go-version: ~1.21.1 - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - - - name: Cache win zip - id: cached_win_zip - uses: actions/cache@v3 - with: - key: "cached_win_zip_${{ github.sha }}" - path: go.mod - - - name: Copy binary - if: contains(inputs.BucketKey, 'test') == false || steps.cached_win_zip.outputs.cache-hit == false - run: | - aws s3 cp s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.BucketKey }} . --recursive - - name: Unzip - if: contains(inputs.BucketKey, 'test') == false || steps.cached_win_zip.outputs.cache-hit == false - run: | - sudo apt install unzip - unzip windows/amd64/amazon-cloudwatch-agent.zip -d windows-agent - - name: Create msi dep folder and copy deps - if: contains(inputs.BucketKey, 'test') == false || steps.cached_win_zip.outputs.cache-hit == false - run: | - export version=$(cat CWAGENT_VERSION) - echo cw agent version $version - mkdir msi_dep - cp -r msi/tools/. msi_dep/ - cp -r windows-agent/amazon-cloudwatch-agent/. msi_dep/ - go run msi/tools/msiversion/msiversionconverter.go $version msi_dep/amazon-cloudwatch-agent.wxs '' - go run msi/tools/msiversion/msiversionconverter.go $version msi_dep/manifest.json __VERSION__ - - - name: Zip - if: contains(inputs.BucketKey, 'test') == false || steps.cached_win_zip.outputs.cache-hit == false - run: | - sudo apt install zip - zip buildMSI.zip msi_dep/* - - - name: Upload zip - if: contains(inputs.BucketKey, 'test') == false || steps.cached_win_zip.outputs.cache-hit == false - run: aws s3 cp buildMSI.zip s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.BucketKey }}/buildMSI.zip - - MakeMacPkg: - name: 'MakeMacPkg' - runs-on: macos-11 - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - with: - path: cwa - fetch-depth: 0 - - - uses: actions/checkout@v3 - with: - repository: ${{env.CWA_GITHUB_TEST_REPO_NAME}} - path: test - - - name: Set up Go 1.x - uses: actions/setup-go@v4 - with: - go-version: ~1.21.1 - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - - - name: Cache binaries - id: cached_binaries - uses: actions/cache@v3 - with: - key: "cached-binaries-${{ runner.os }}-${{ inputs.BucketKey }}" - path: go.mod - - - name: Cache pkg - if: contains(inputs.BucketKey, 'test') == false || steps.cached_binaries.outputs.cache-hit == false - uses: actions/cache@v3 - with: - path: | - ~/Library/Caches/go-build - ~/go/pkg/mod - key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.sum') }} - - - name: Build Binaries - if: contains(inputs.BucketKey, 'test') == false || steps.cached_binaries.outputs.cache-hit == false - working-directory: cwa - run: make amazon-cloudwatch-agent-darwin package-darwin - - - name: Copy binary - if: contains(inputs.BucketKey, 'test') == false || steps.cached_binaries.outputs.cache-hit == false - working-directory: cwa - run: | - echo cw agent version $(cat CWAGENT_VERSION) - cp -r build/bin/darwin/amd64/. /tmp/ - cp -r build/bin/darwin/arm64/. /tmp/arm64/ - cp build/bin/CWAGENT_VERSION /tmp/CWAGENT_VERSION - - - name: Create pkg dep folder and copy deps - if: contains(inputs.BucketKey, 'test') == false || steps.cached_binaries.outputs.cache-hit == false - working-directory: test - run: | - cp -r pkg/tools/. /tmp/ - cp -r pkg/tools/. /tmp/arm64/ - - - name: Build And Upload PKG - if: contains(inputs.BucketKey, 'test') == false || steps.cached_binaries.outputs.cache-hit == false - working-directory: /tmp/ - run : | - chmod +x create_pkg.sh - chmod +x arm64/create_pkg.sh - ./create_pkg.sh ${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }} "nosha" amd64 - cd arm64 - ./create_pkg.sh ${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }} "nosha" arm64 - - BuildMSI: - name: 'BuildMSI' - runs-on: windows-latest - needs: [MakeMSIZip] - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - - - name: Cache msi - id: cached_msi - uses: actions/cache@v3 - with: - key: "cached_msi_${{ github.sha }}" - path: go.mod - - # Using the env variable returns "" for bucket name thus use the secret - - name: Copy msi - if: contains(inputs.BucketKey, 'test') == false || steps.cached_msi.outputs.cache-hit == false - run: aws s3 cp s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.BucketKey }}/buildMSI.zip . - - - name: Create msi - if: contains(inputs.BucketKey, 'test') == false || steps.cached_msi.outputs.cache-hit == false - run : | - curl -OLS https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311.exe - .\wix311.exe /install /quiet /norestart - $wixToolsetBinPath = ";C:\Program Files (x86)\WiX Toolset v3.11\bin;" - $env:PATH = $env:PATH + $wixToolsetBinPath - Expand-Archive buildMSI.zip -Force - cd buildMSI/msi_dep - .\create_msi.ps1 "nosha" ${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }} - - #GH actions set up gpg only works on ubuntu as of this commit date - GPGSignMacAndWindowsPackage: - name: 'SignMacAndWindowsPackage' - runs-on: ubuntu-latest - needs: [BuildMSI, MakeMacPkg] - permissions: - id-token: write - contents: read - steps: - - uses: actions/checkout@v3 - - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v2 - with: - role-to-assume: ${{ secrets.TERRAFORM_AWS_ASSUME_ROLE }} - aws-region: us-west-2 - - - name: Cache sig - id: cached_sig - uses: actions/cache@v3 - with: - key: "cached_sig_${{ github.sha }}" - path: go.mod - - - name: Download from s3 - if: contains(inputs.BucketKey, 'test') == false || steps.cached_sig.outputs.cache-hit == false - run: | - mkdir -p packages/amd64 - mkdir packages/arm64 - aws s3 cp s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/amazon-cloudwatch-agent.msi ./packages/amazon-cloudwatch-agent.msi - aws s3 cp s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/amd64/amazon-cloudwatch-agent.pkg ./packages/amd64/amazon-cloudwatch-agent.pkg - aws s3 cp s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/arm64/amazon-cloudwatch-agent.pkg ./packages/arm64/amazon-cloudwatch-agent.pkg - - name: Import GPG Key - uses: crazy-max/ghaction-import-gpg@v5 - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.PASSPHRASE }} - - - name: Sign Build Files - run: for f in $(find packages/); do if [ ! -d $f ]; then echo "Signing file $f" && gpg --detach-sign $f ; fi ; done - - - name: Upload to s3 - if: contains(inputs.BucketKey, 'test') == false || steps.cached_sig.outputs.cache-hit == false - run: | - aws s3 cp packages/amazon-cloudwatch-agent.msi.sig s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/amazon-cloudwatch-agent.msi.sig - aws s3 cp packages/amd64/amazon-cloudwatch-agent.pkg.sig s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/amd64/amazon-cloudwatch-agent.pkg.sig - aws s3 cp packages/arm64/amazon-cloudwatch-agent.pkg.sig s3://${{ secrets.S3_INTEGRATION_BUCKET }}/${{ inputs.PackageBucketKey }}/arm64/amazon-cloudwatch-agent.pkg.sig + platforms: linux/amd64, linux/arm64 \ No newline at end of file