diff --git a/.github/workflows/lib-check.yml b/.github/workflows/lib-check.yml index 85ed61c2f..06180f579 100644 --- a/.github/workflows/lib-check.yml +++ b/.github/workflows/lib-check.yml @@ -96,7 +96,12 @@ jobs: with: cache-prefix: turbo-cache- - run: yarn test:unit - - name: Download and verify codecov cli + - name: Set codecov flag type to unit + run: echo "CODECOV_FLAG_TYPE=unit" >> "$GITHUB_ENV" + # https://docs.github.com/en/actions/reference/workflows-and-actions/reusing-workflow-configurations#yaml-anchors-and-aliases + # We use anchors to avoid duplicating the codecov download and upload run code + - &codecov-download-cli + name: Download and verify codecov cli run: | curl https://keybase.io/codecovsecops/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import @@ -107,38 +112,47 @@ jobs: shasum -a 256 -c codecov.SHA256SUM sudo chmod +x codecov - - name: Upload coverage report to codecov + - &codecov-upload + name: Upload coverage report to codecov shell: bash + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + GH_HEAD_SHA: ${{ github.event.pull_request.head.sha }} + GH_HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }} + GH_REPO: ${{ github.repository }} + GH_HEAD_LABEL: ${{ github.event.pull_request.head.label }} + GH_PR_NUMBER: ${{ github.event.number }} run: | - CC_FLAGS="--disable-search --git-service github" + CC_BASE_FLAGS="--disable-search --git-service github" - if [ -n "${{ github.event.pull_request.head.sha }}" ]; then - CC_FLAGS+=" --sha ${{ github.event.pull_request.head.sha }}" + if [ -n "$GH_HEAD_SHA" ]; then + CC_BASE_FLAGS+=" --sha $GH_HEAD_SHA" fi - if [ -n "${{ github.event.pull_request.head.repo.full_name }}" ] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]; + if [ -n "$GH_HEAD_REPO" ] && [ "$GH_HEAD_REPO" != "$GH_REPO" ]; then echo "Fork detected" - CC_FLAGS+=" --branch ${{ github.event.pull_request.head.label }} --pr ${{ github.event.number }}" + CC_BASE_FLAGS+=" --branch $GH_HEAD_LABEL --pr $GH_PR_NUMBER" fi CC_TOKEN="" CC_LOG_TOKEN="" - if [ -n "${{ secrets.CODECOV_TOKEN }}" ]; then + if [ -n "$CODECOV_TOKEN" ]; then echo "CODECOV_TOKEN is set, adding to codecov upload-process command" - CC_TOKEN+=" --token ${{ secrets.CODECOV_TOKEN }}" + CC_TOKEN+=" --token $CODECOV_TOKEN" CC_LOG_TOKEN+=" --token ***" fi find packages/ -name "lcov.info" -type f | awk -F'/' '{ print $2 }' | while read -r package; do sed -i "s|SF:src|SF:packages/${package}/src|g" "packages/$package/coverage/lcov.info" - CC_FLAGS+=" --file packages/$package/coverage/lcov.info --flag $package-unit --flag $package" + CC_FLAGS="$CC_BASE_FLAGS --file packages/$package/coverage/lcov.info --flag $package-$CODECOV_FLAG_TYPE --flag $package" echo "Uploading $package converage/lcov.info file" echo "Running \"./codecov upload-process $CC_LOG_TOKEN $CC_FLAGS\"" + # shellcheck disable=SC2086 ./codecov upload-process $CC_TOKEN $CC_FLAGS done @@ -198,51 +212,10 @@ jobs: with: cache-prefix: turbo-cache- - run: yarn test:integration - - name: Download and verify codecov cli - run: | - curl https://keybase.io/codecovsecops/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import - - curl -Os https://cli.codecov.io/latest/linux/codecov - curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM - curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM - - shasum -a 256 -c codecov.SHA256SUM - sudo chmod +x codecov - - name: Upload coverage report to codecov - shell: bash - run: | - CC_FLAGS="--disable-search --git-service github" - - if [ -n "${{ github.event.pull_request.head.sha }}" ]; then - CC_FLAGS+=" --sha ${{ github.event.pull_request.head.sha }}" - fi - - if [ -n "${{ github.event.pull_request.head.repo.full_name }}" ] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]; - then - echo "Fork detected" - CC_FLAGS+=" --branch ${{ github.event.pull_request.head.label }} --pr ${{ github.event.number }}" - fi - - CC_TOKEN="" - CC_LOG_TOKEN="" - if [ -n "${{ secrets.CODECOV_TOKEN }}" ]; then - echo "CODECOV_TOKEN is set, adding to codecov upload-process command" - CC_TOKEN+=" --token ${{ secrets.CODECOV_TOKEN }}" - CC_LOG_TOKEN+=" --token ***" - fi - - find packages/ -name "lcov.info" -type f | awk -F'/' '{ print $2 }' | while read -r package; do - sed -i "s|SF:src|SF:packages/${package}/src|g" "packages/$package/coverage/lcov.info" - - CC_FLAGS+=" --file packages/$package/coverage/lcov.info --flag $package-integration --flag $package" - - - echo "Uploading $package converage/lcov.info file" - echo "Running \"./codecov upload-process $CC_LOG_TOKEN $CC_FLAGS\"" - - ./codecov upload-process $CC_TOKEN $CC_FLAGS - done + - name: Set codecov flag type to integration + run: echo "CODECOV_FLAG_TYPE=integration" >> "$GITHUB_ENV" + - *codecov-download-cli + - *codecov-upload e2e-tests: name: E2E Tests @@ -267,48 +240,7 @@ jobs: env: DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }} E2E_TEST_GUILD_ID: ${{ secrets.UNIT_TEST_GUILD_ID }} - - name: Download and verify codecov cli - run: | - curl https://keybase.io/codecovsecops/pgp_keys.asc | gpg --no-default-keyring --keyring trustedkeys.gpg --import - - curl -Os https://cli.codecov.io/latest/linux/codecov - curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM - curl -Os https://cli.codecov.io/latest/linux/codecov.SHA256SUM.sig - gpgv codecov.SHA256SUM.sig codecov.SHA256SUM - - shasum -a 256 -c codecov.SHA256SUM - sudo chmod +x codecov - - name: Upload coverage report to codecov - shell: bash - run: | - CC_FLAGS="--disable-search --git-service github" - - if [ -n "${{ github.event.pull_request.head.sha }}" ]; then - CC_FLAGS+=" --sha ${{ github.event.pull_request.head.sha }}" - fi - - if [ -n "${{ github.event.pull_request.head.repo.full_name }}" ] && [ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]; - then - echo "Fork detected" - CC_FLAGS+=" --branch ${{ github.event.pull_request.head.label }} --pr ${{ github.event.number }}" - fi - - CC_TOKEN="" - CC_LOG_TOKEN="" - if [ -n "${{ secrets.CODECOV_TOKEN }}" ]; then - echo "CODECOV_TOKEN is set, adding to codecov upload-process command" - CC_TOKEN+=" --token ${{ secrets.CODECOV_TOKEN }}" - CC_LOG_TOKEN+=" --token ***" - fi - - find packages/ -name "lcov.info" -type f | awk -F'/' '{ print $2 }' | while read -r package; do - sed -i "s|SF:src|SF:packages/${package}/src|g" "packages/$package/coverage/lcov.info" - - CC_FLAGS+=" --file packages/$package/coverage/lcov.info --flag $package-e2e --flag $package" - - - echo "Uploading $package converage/lcov.info file" - echo "Running \"./codecov upload-process $CC_LOG_TOKEN $CC_FLAGS\"" - - ./codecov upload-process $CC_TOKEN $CC_FLAGS - done + - name: Set codecov flag type to e2e + run: echo "CODECOV_FLAG_TYPE=e2e" >> "$GITHUB_ENV" + - *codecov-download-cli + - *codecov-upload