From dc6fd8d9b0bb6173d942e7b7192847fff03ba001 Mon Sep 17 00:00:00 2001 From: chinelo-obitube Date: Sun, 21 Jul 2024 16:42:58 +0100 Subject: [PATCH] rewrite coverage-tests --- .github/workflows/ci-tests.yml | 623 ++++++++++++++++----------------- .github/workflows/test.yml | 27 -- test/format-coverage.sh | 9 - test/sum-upload-coverage.sh | 22 -- 4 files changed, 309 insertions(+), 372 deletions(-) diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index f2f78f6e47..bf144d29fa 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -1,335 +1,330 @@ -# name: Build and Run Tests - -# on: -# schedule: -# - cron: '0 5 * * *' #Runs daily at 5 AM UTC -# push: -# branches: -# - CV2-4794-migrate-travis-ci -# # - master -# # - develop -# # pull_request: -# # branches: -# # - develop - -# env: -# CC_TEST_REPORTER_ID: "${{ secrets.CC_TEST_REPORTER_ID }}" - -# jobs: -# functional-tests: -# runs-on: ubuntu-latest - -# steps: -# - uses: actions/checkout@v4 - -# - name: Configure AWS Credentials -# uses: aws-actions/configure-aws-credentials@v4 -# with: -# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} -# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} -# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} -# aws-region: eu-west-1 - -# - name: Login to Amazon ECR -# id: login-ecr -# uses: aws-actions/amazon-ecr-login@v2 - -# - name: Set up QEMU -# uses: docker/setup-qemu-action@v3 - -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v3 - -# - name: set up enviroments -# run: | -# export RECORD_RUNTIME=true -# export LC_ALL=C.UTF-8 -# export LANG=C.UTF-8 -# export LANGUAGE=C.UTF-8 -# export PATH=/root/.local/bin:$PATH -# rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 +name: Build and Run Tests + +on: + schedule: + - cron: '0 5 * * *' #Runs daily at 5 AM UTC + push: + branches: + - master + - develop + pull_request: + branches: + - develop + +env: + CC_TEST_REPORTER_ID: "${{ secrets.CC_TEST_REPORTER_ID }}" + +jobs: + functional-tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: eu-west-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: set up enviroments + run: | + export RECORD_RUNTIME=true + export LC_ALL=C.UTF-8 + export LANG=C.UTF-8 + export LANGUAGE=C.UTF-8 + export PATH=/root/.local/bin:$PATH + rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 -# - name: set up comfiguration files -# run: | -# cp config/config.yml.example config/config.yml -# cp config/database.yml.example config/database.yml -# cp config/sidekiq.yml.example config/sidekiq.yml -# cp config/credentials.json.example config/credentials.json -# cp config/sidekiq-test.yml.example config/sidekiq-test.yml + - name: set up comfiguration files + run: | + cp config/config.yml.example config/config.yml + cp config/database.yml.example config/database.yml + cp config/sidekiq.yml.example config/sidekiq.yml + cp config/credentials.json.example config/credentials.json + cp config/sidekiq-test.yml.example config/sidekiq-test.yml -# - name: Build Docker Container -# run: | -# docker-compose build -# - name: Run syntax checks -# run: | -# docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' -# - name: Run Container -# run: docker-compose -f docker-compose.yml -f docker-test.yml up -d - -# - name: Wait for the server to be ready -# run: | -# tail -f log/test.log & -# until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done -# - name: Set up parallel environment -# run: docker-compose exec -T api test/setup-parallel-env.sh - -# - name: Precompile assets -# run: docker-compose exec -T api bundle exec rake assets:precompile - -# - name: Prepare parallel runtime log -# run: | -# sleep 10 -# touch tmp/parallel_runtime_test.log -# chmod +w tmp/parallel_runtime_test.log + - name: Build Docker Container + run: | + docker-compose build + - name: Run syntax checks + run: | + docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' + - name: Run Container + run: docker-compose -f docker-compose.yml -f docker-test.yml up -d + + - name: Wait for the server to be ready + run: | + tail -f log/test.log & + until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done + - name: Set up parallel environment + run: docker-compose exec -T api test/setup-parallel-env.sh + + - name: Precompile assets + run: docker-compose exec -T api bundle exec rake assets:precompile + + - name: Prepare parallel runtime log + run: | + sleep 10 + touch tmp/parallel_runtime_test.log + chmod +w tmp/parallel_runtime_test.log -# - name: Run Functional Tests -# id: run-tests -# env: -# TEST_RETRY_COUNT: 3 -# run: | -# docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='models mailers integration workers lib contract' api test/run-tests.sh + - name: Run Functional Tests + id: functional-tests + env: + TEST_RETRY_COUNT: 3 + run: | + docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='models mailers integration workers lib contract' api test/run-tests.sh -# - name: After functional Tests -# id: after-functional-tests -# env: -# GIT_SHA: ${{ github.sha }} -# GIT_COMMITED_AT: ${{ github.event.head_commit.timestamp }} -# run: | -# docker-compose exec -T -e GIT_COMMIT_SHA=${{ github.sha }} \ -# -e GIT_COMMITTED_AT=${{ github.event.head_commit.timestamp }} \ -# -e CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID \ -# -e PATH=$PATH \ -# -e JOB_NAME=functional-tests \ -# -e AWS_CONFIG_FILE=/app/credentials \ -# api test/test-coverage.sh + - name: After Functional Test + env: + GIT_SHA: ${{ github.sha }} + GITHUB_PULL_REQUEST: ${{ github.event_name}} + GIT_BRANCH: ${{ github.head_ref || github.ref_name }} + GITHUB_REPO_SLUG: ${{ github.repository }} + GITHUB_TEST_RESULT: ${{ steps.functional-tests.outcome}} + GITHUB_BUILD_NUMBER: ${{ github.run_number }} + GITHUB_COMMIT_SHA: ${{ github.sha }} + GITHUB_JOB_NAME: ${{ github.job }} + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME }} + AWS_REGION: eu-west-1 + run: | + docker-compose exec -T -e GIT_BRANCH=$GIT_BRANCH \ + -e GITHUB_PULL_REQUEST=$GITHUB_PULL_REQUEST \ + -e GITHUB_TEST_RESULT=$GITHUB_TEST_RESULT \ + -e GITHUB_REPO_SLUG=$GITHUB_REPO_SLUG \ + -e GITHUB_BUILD_NUMBER=$GITHUB_BUILD_NUMBER \ + -e GIT_COMMIT_SHA=$GITHUB_COMMIT_SHA \ + -e CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID \ + -e GITHUB_JOB_NAME=$GITHUB_JOB_NAME \ + -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ + -e ROLE_TO_ASSUME=$AWS_ROLE_TO_ASSUME \ + -e AWS_REGION=$AWS_REGION \ + -e AWS_CONFIG_FILE=/app/credentials api test/test-coverage.sh -# unit-tests: -# runs-on: ubuntu-latest - -# steps: -# - uses: actions/checkout@v4 - -# - name: Configure AWS Credentials -# uses: aws-actions/configure-aws-credentials@v4 -# with: -# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} -# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} -# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} -# aws-region: eu-west-1 - -# - name: Login to Amazon ECR -# id: login-ecr -# uses: aws-actions/amazon-ecr-login@v2 - -# - name: Set up QEMU -# uses: docker/setup-qemu-action@v3 - -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v3 - -# - name: set up enviromnts -# run: | -# export RECORD_RUNTIME=true -# export LC_ALL=C.UTF-8 -# export LANG=C.UTF-8 -# export LANGUAGE=C.UTF-8 -# export PATH=/root/.local/bin:$PATH -# rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 + unit-tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: eu-west-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: set up enviromnts + run: | + export RECORD_RUNTIME=true + export LC_ALL=C.UTF-8 + export LANG=C.UTF-8 + export LANGUAGE=C.UTF-8 + export PATH=/root/.local/bin:$PATH + rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 -# - name: set up comfiguration files -# run: | -# cp config/config.yml.example config/config.yml -# cp config/database.yml.example config/database.yml -# cp config/sidekiq.yml.example config/sidekiq.yml -# cp config/credentials.json.example config/credentials.json -# cp config/sidekiq-test.yml.example config/sidekiq-test.yml + - name: set up comfiguration files + run: | + cp config/config.yml.example config/config.yml + cp config/database.yml.example config/database.yml + cp config/sidekiq.yml.example config/sidekiq.yml + cp config/credentials.json.example config/credentials.json + cp config/sidekiq-test.yml.example config/sidekiq-test.yml -# - name: Build Docker Container -# run: | -# docker-compose build -# - name: Run syntax checks -# run: | -# docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' -# - name: Run Container -# run: docker-compose -f docker-compose.yml -f docker-test.yml up -d - -# - name: Wait for the server to be ready -# run: | -# tail -f log/test.log & -# until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done -# - name: Set up parallel environment -# run: docker-compose exec -T api test/setup-parallel-env.sh - -# - name: Precompile assets -# run: docker-compose exec -T api bundle exec rake assets:precompile - -# - name: Prepare parallel runtime log -# run: | -# sleep 10 -# touch tmp/parallel_runtime_test.log -# chmod +w tmp/parallel_runtime_test.log + - name: Build Docker Container + run: | + docker-compose build + - name: Run syntax checks + run: | + docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' + - name: Run Container + run: docker-compose -f docker-compose.yml -f docker-test.yml up -d + + - name: Wait for the server to be ready + run: | + tail -f log/test.log & + until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done + - name: Set up parallel environment + run: docker-compose exec -T api test/setup-parallel-env.sh + + - name: Precompile assets + run: docker-compose exec -T api bundle exec rake assets:precompile + + - name: Prepare parallel runtime log + run: | + sleep 10 + touch tmp/parallel_runtime_test.log + chmod +w tmp/parallel_runtime_test.log -# - name: Run Unit Tests -# id: run-tests -# env: -# TEST_RETRY_COUNT: 3 -# run: | -# docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='controllers contract' api test/run-tests.sh + - name: Run Unit Tests + id: unit-tests + env: + TEST_RETRY_COUNT: 3 + run: | + docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='controllers contract' api test/run-tests.sh -# - name: After unit Tests -# id: unit-tests -# env: -# GIT_SHA: ${{ github.sha }} -# GIT_COMMITED_AT: ${{ github.event.head_commit.timestamp }} -# run: | -# docker-compose exec -T -e GIT_COMMIT_SHA=${{ github.sha }} \ -# -e GIT_COMMITTED_AT=${{ github.event.head_commit.timestamp }} \ -# -e CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID \ -# -e PATH=$PATH \ -# -e JOB_NAME=unit-tests \ -# -e AWS_CONFIG_FILE=/app/credentials \ -# api test/test-coverage.sh + - name: After Unit Test + env: + GIT_SHA: ${{ github.sha }} + GITHUB_PULL_REQUEST: ${{ github.event_name}} + GIT_BRANCH: ${{ github.head_ref || github.ref_name }} + GITHUB_REPO_SLUG: ${{ github.repository }} + GITHUB_TEST_RESULT: ${{ steps.unit-tests.outcome}} + GITHUB_BUILD_NUMBER: ${{ github.run_number }} + GITHUB_COMMIT_SHA: ${{ github.sha }} + GITHUB_JOB_NAME: ${{ github.job }} + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME }} + AWS_REGION: eu-west-1 + run: | + docker-compose exec -T -e GIT_BRANCH=$GIT_BRANCH \ + -e GITHUB_PULL_REQUEST=$GITHUB_PULL_REQUEST \ + -e GITHUB_TEST_RESULT=$GITHUB_TEST_RESULT \ + -e GITHUB_REPO_SLUG=$GITHUB_REPO_SLUG \ + -e GITHUB_BUILD_NUMBER=$GITHUB_BUILD_NUMBER \ + -e GIT_COMMIT_SHA=$GITHUB_COMMIT_SHA \ + -e CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID \ + -e GITHUB_JOB_NAME=$GITHUB_JOB_NAME \ + -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ + -e ROLE_TO_ASSUME=$AWS_ROLE_TO_ASSUME \ + -e AWS_REGION=$AWS_REGION \ + -e AWS_CONFIG_FILE=/app/credentials api test/test-coverage.sh -# contract-tests: -# runs-on: ubuntu-latest - -# steps: -# - uses: actions/checkout@v4 - -# - name: Configure AWS Credentials -# uses: aws-actions/configure-aws-credentials@v4 -# with: -# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} -# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} -# role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} -# aws-region: eu-west-1 - -# - name: Login to Amazon ECR -# id: login-ecr -# uses: aws-actions/amazon-ecr-login@v2 - -# - name: Set up QEMU -# uses: docker/setup-qemu-action@v3 - -# - name: Set up Docker Buildx -# uses: docker/setup-buildx-action@v3 - -# - name: set up enviromnts -# run: | -# export RECORD_RUNTIME=true -# export LC_ALL=C.UTF-8 -# export LANG=C.UTF-8 -# export LANGUAGE=C.UTF-8 -# export PATH=/root/.local/bin:$PATH -# rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 + contract-tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + aws-region: eu-west-1 + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: set up enviromnts + run: | + export RECORD_RUNTIME=true + export LC_ALL=C.UTF-8 + export LANG=C.UTF-8 + export LANGUAGE=C.UTF-8 + export PATH=/root/.local/bin:$PATH + rm -rf tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 && mkdir -p tmp/cache tmp/cache1 tmp/cache2 tmp/cache3 tmp/cache4 tmp/cache5 -# - name: set up comfiguration files -# run: | -# cp config/config.yml.example config/config.yml -# cp config/database.yml.example config/database.yml -# cp config/sidekiq.yml.example config/sidekiq.yml -# cp config/credentials.json.example config/credentials.json -# cp config/sidekiq-test.yml.example config/sidekiq-test.yml + - name: set up comfiguration files + run: | + cp config/config.yml.example config/config.yml + cp config/database.yml.example config/database.yml + cp config/sidekiq.yml.example config/sidekiq.yml + cp config/credentials.json.example config/credentials.json + cp config/sidekiq-test.yml.example config/sidekiq-test.yml -# - name: Build Docker Container -# run: | -# docker-compose build + - name: Build Docker Container + run: | + docker-compose build -# - name: Run syntax checks -# run: | -# docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' + - name: Run syntax checks + run: | + docker-compose run api bash -c 'touch /tmp/no-syntax-errors && find app lib config -name *.rb -exec bash -c "ruby -c {} >/dev/null || rm /tmp/no-syntax-errors" ";" && ls /tmp/no-syntax-errors' -# - name: Run Container -# run: docker-compose -f docker-compose.yml -f docker-test.yml up -d + - name: Run Container + run: docker-compose -f docker-compose.yml -f docker-test.yml up -d -# - name: Wait for the server to be ready -# run: | -# tail -f log/test.log & -# until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done + - name: Wait for the server to be ready + run: | + tail -f log/test.log & + until curl --silent -I -f --fail http://localhost:3000 ; do printf .; sleep 1; done -# - name: Set up parallel environment -# run: docker-compose exec -T api test/setup-parallel-env.sh + - name: Set up parallel environment + run: docker-compose exec -T api test/setup-parallel-env.sh -# - name: Precompile assets -# run: docker-compose exec -T api bundle exec rake assets:precompile + - name: Precompile assets + run: docker-compose exec -T api bundle exec rake assets:precompile -# - name: Prepare parallel runtime log -# run: | -# sleep 10 -# touch tmp/parallel_runtime_test.log -# chmod +w tmp/parallel_runtime_test.log + - name: Prepare parallel runtime log + run: | + sleep 10 + touch tmp/parallel_runtime_test.log + chmod +w tmp/parallel_runtime_test.log -# - name: Run Contract Tests -# id: run-tests -# env: -# TEST_RETRY_COUNT: 3 -# run: | -# docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='controllers models mailers integration workers lib' api test/run-tests.sh - -# - name: Set ENV for Code Climate (Pull Request) -# if: github.event_name == 'pull_request' -# run: | -# git fetch --no-tags --prune --depth=1 origin +refs/heads/$GITHUB_HEAD_REF:refs/remotes/origin/$GITHUB_HEAD_REF -# echo "GIT_BRANCH=$GITHUB_HEAD_REF" >> $GITHUB_ENV -# echo "GIT_COMMIT_SHA=$(git rev-parse origin/$GITHUB_HEAD_REF)" >> $GITHUB_ENV - -# - name: Set ENV for Code Climate (Push) -# if: github.event_name == 'push' -# run: | -# echo "GIT_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV -# echo "GIT_COMMIT_SHA=$GITHUB_SHA" >> $GITHUB_ENV - -# - name: Download test coverage reporter -# env: -# CC_TEST_REPORTER_URL: https://codeclimate.com/downloads/test-reporter/test-reporter-0.7.0-linux-amd64 -# run: curl -L $CC_TEST_REPORTER_URL > test/cc-test-reporter - -# - name: Give test coverage reporter executable permissions -# run: chmod +x test/cc-test-reporter - -# - name: Save coverage -# env: -# GIT_SHA: ${{ github.sha }} -# GITHUB_PULL_REQUEST: 'false' -# GIT_BRANCH: ${{ github.head_ref || github.ref_name }} -# GITHUB_REPO_SLUG: ${{ github.repository }} -# GITHUB_TEST_RESULT: 0 -# GITHUB_BUILD_NUMBER: ${{ github.run_number }} -# GITHUB_COMMIT_SHA: ${{ github.sha }} -# GITHUB_JOB_NAME: ${{ github.job }} -# CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} -# run: | -# ./test/cc-test-reporter format-coverage -t simplecov --output /coverage/codeclimate.$GITHUB_JOB_NAME.json /coverage/.resultset.json -# aws s3 cp /coverage/codeclimate.$GITHUB_JOB_NAME.json s3://check-api-travis/codeclimate/$GITHUB_REPO_SLUG/$GITHUB_BUILD_NUMBER/codeclimate.$GITHUB_JOB_NAME.json - -# - uses: actions/upload-artifact@v2 -# with: -# name: coverage-${{ matrix.ruby }} -# path: coverage/codeclimate.GITHUB_JOB_NAME.json - -# - uses: actions/download-artifact@v2 -# with: -# name: coverage-2.4.9 -# path: coverage - -# - uses: actions/download-artifact@v2 -# with: -# name: coverage-2.5.7 -# path: coverage - -# - uses: actions/download-artifact@v2 -# with: -# name: coverage-2.6.5 -# path: coverage - -# - uses: actions/download-artifact@v2 -# with: -# name: coverage-2.7.0 -# path: coverage - -# - name: Aggregate & upload results to Code Climate -# run: | -# ./cc-test-reporter sum-coverage coverage/codeclimate.$GITHUB_JOB_NAME.json -# ./cc-test-reporter upload-coverage \ No newline at end of file + - name: Run Contract Tests + id: run-tests + env: + TEST_RETRY_COUNT: 3 + run: | + docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='controllers models mailers integration workers lib' api test/run-tests.sh + + - name: After coverage Test + env: + GIT_SHA: ${{ github.sha }} + GITHUB_PULL_REQUEST: ${{ github.event_name}} + GIT_BRANCH: ${{ github.head_ref || github.ref_name }} + GITHUB_REPO_SLUG: ${{ github.repository }} + GITHUB_TEST_RESULT: ${{ steps.run-tests.outcome}} + GITHUB_BUILD_NUMBER: ${{ github.run_number }} + GITHUB_COMMIT_SHA: ${{ github.sha }} + GITHUB_JOB_NAME: ${{ github.job }} + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME }} + AWS_REGION: eu-west-1 + run: | + docker-compose exec -T -e GIT_BRANCH=$GIT_BRANCH \ + -e GITHUB_PULL_REQUEST=$GITHUB_PULL_REQUEST \ + -e GITHUB_TEST_RESULT=$GITHUB_TEST_RESULT \ + -e GITHUB_REPO_SLUG=$GITHUB_REPO_SLUG \ + -e GITHUB_BUILD_NUMBER=$GITHUB_BUILD_NUMBER \ + -e GIT_COMMIT_SHA=$GITHUB_COMMIT_SHA \ + -e CC_TEST_REPORTER_ID=$CC_TEST_REPORTER_ID \ + -e GITHUB_JOB_NAME=$GITHUB_JOB_NAME \ + -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \ + -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \ + -e ROLE_TO_ASSUME=$AWS_ROLE_TO_ASSUME \ + -e AWS_REGION=$AWS_REGION \ + -e AWS_CONFIG_FILE=/app/credentials api test/test-coverage.sh \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9fe7d90899..227e6abf34 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -90,33 +90,6 @@ jobs: TEST_RETRY_COUNT: 3 run: | docker-compose exec -e TEST_RETRY_COUNT=$TEST_RETRY_COUNT -T -e PATTERN='controllers models mailers integration workers lib' api test/run-tests.sh - - - name: Set ENV for Code Climate (Pull Request) - if: github.event_name == 'pull_request' - run: | - git fetch --no-tags --prune --depth=1 origin +refs/heads/$GITHUB_HEAD_REF:refs/remotes/origin/$GITHUB_HEAD_REF - echo "GIT_BRANCH=$GITHUB_HEAD_REF" >> $GITHUB_ENV - echo "GIT_COMMIT_SHA=$(git rev-parse origin/$GITHUB_HEAD_REF)" >> $GITHUB_ENV - - - name: Set ENV for Code Climate (Push) - if: github.event_name == 'push' - run: | - echo "GIT_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV - echo "GIT_COMMIT_SHA=$GITHUB_SHA" >> $GITHUB_ENV - - # - name: Set up AWS credentials - # run: | - - # echo "aws_access_key_id = ${{ secrets.AWS_ACCESS_KEY_ID }}" >> app/credentials - # echo "aws_secret_access_key = ${{ secrets.AWS_SECRET_ACCESS_KEY }}" >> app/credentials - - # - name: Download test coverage reporter - # env: - # CC_TEST_REPORTER_URL: https://codeclimate.com/downloads/test-reporter/test-reporter-0.7.0-linux-amd64 - # run: curl -L $CC_TEST_REPORTER_URL > /test/cc-test-reporter - - # - name: Give test coverage reporter executable permissions - # run: chmod +x /test/cc-test-reporter - name: After coverage Test env: diff --git a/test/format-coverage.sh b/test/format-coverage.sh index 0a1abb7385..7dd192ebc4 100755 --- a/test/format-coverage.sh +++ b/test/format-coverage.sh @@ -8,12 +8,3 @@ then aws s3 cp ../coverage/codeclimate.$GITHUB_JOB_NAME.json s3://check-api-travis/codeclimate/$GITHUB_REPO_SLUG/$GITHUB_BUILD_NUMBER/codeclimate.$GITHUB_JOB_NAME.json fi -# #!/bin/bash - -# apt-get install -y awscli - -# if [ "$TRAVIS_PULL_REQUEST" == "false" ] -# then -# ./test/cc-test-reporter format-coverage -t simplecov --output ../coverage/codeclimate.$TRAVIS_JOB_NAME.json ../coverage/.resultset.json -# aws s3 cp ../coverage/codeclimate.$TRAVIS_JOB_NAME.json s3://check-api-travis/codeclimate/$TRAVIS_REPO_SLUG/$TRAVIS_BUILD_NUMBER/codeclimate.$TRAVIS_JOB_NAME.json -# fi diff --git a/test/sum-upload-coverage.sh b/test/sum-upload-coverage.sh index d6cd547a2f..7ea0aae88a 100755 --- a/test/sum-upload-coverage.sh +++ b/test/sum-upload-coverage.sh @@ -20,25 +20,3 @@ then ./cc-test-reporter show-coverage ../coverage/codeclimate.json fi fi -# #!/bin/bash - -# if [[ "$TRAVIS_PULL_REQUEST" == "false" ]] && [[ $TRAVIS_TEST_RESULT == 0 ]] -# then -# rm -rf ../coverage/* -# aws s3 cp --recursive s3://check-api-travis/codeclimate/$TRAVIS_REPO_SLUG/$TRAVIS_BUILD_NUMBER/ ../coverage -# if [[ $(ls ../coverage/codeclimate.* | wc -l) -eq 3 ]] -# then -# # Make sure we are not dealing with a file that is still being uploaded -# previous_size=0 -# size=$(du -s ../coverage/ | cut -f1) -# while [ $size -gt $previous_size ] -# do -# previous_size=$size -# sleep 5 -# size=$(du -s ../coverage/ | cut -f1) -# done -# ./cc-test-reporter sum-coverage --output - --parts 3 ../coverage/codeclimate.* | sed 's/\/home\/travis\/build\/meedan\/check-api\///g' > ../coverage/codeclimate.json -# cat ../coverage/codeclimate.json | ./cc-test-reporter upload-coverage --input - -# ./cc-test-reporter show-coverage ../coverage/codeclimate.json -# fi -# fi