Skip to content

Commit b183158

Browse files
authored
Use GitHub Actions Artifacts (#48)
Using GitHub actions artifacts for storing coverage reports because AWS S3 options require setting up secrets and these secrets cannot be shared on forks. Using the secrets in plain text is definitely not a mindful decision.
1 parent 6b84832 commit b183158

File tree

1 file changed

+19
-29
lines changed

1 file changed

+19
-29
lines changed

.github/workflows/lint-and-specs.yml

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ jobs:
3030

3131
- name: Setup Code Climate test-reporter
3232
run: |
33-
pip3 install awscli --user
3433
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
3534
chmod +x ./cc-test-reporter
3635
./cc-test-reporter before-build
@@ -41,20 +40,20 @@ jobs:
4140
- name: Run Tests
4241
run: bundle exec rake
4342

44-
- name: Configure AWS Credentials for Coverage Upload
45-
uses: aws-actions/configure-aws-credentials@v1
46-
with:
47-
aws-access-key-id: ${{ secrets.CI_AWS_ACCESS_KEY_ID }}
48-
aws-secret-access-key: ${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}
49-
aws-region: us-east-1
50-
51-
- name: Upload Job Coverage
43+
- name: Format Coverage Report
5244
env:
5345
GIT_BRANCH: ${{ github.event_name == 'pull_request' && github.head_ref || 'main' }}
5446
GIT_COMMIT_SHA: ${{ github.sha }}
5547
run: |
56-
./cc-test-reporter format-coverage coverage/coverage.json --output coverage/ruby-${{ matrix.ruby }}.simplecov.json --input-type simplecov
57-
aws s3 cp coverage/ruby-${{ matrix.ruby }}.simplecov.json ${{ secrets.CI_ARTIFACTS_S3_URI }}/${{ github.repository }}/${{ github.run_number }}/ruby-${{ matrix.ruby }}.simplecov.json
48+
mkdir -p coverage-artifacts
49+
./cc-test-reporter format-coverage coverage/coverage.json --input-type simplecov --output coverage-artifacts/ruby-${{ matrix.ruby }}-coverage.json
50+
51+
- name: Save Coverage Report
52+
uses: actions/upload-artifact@v2
53+
with:
54+
name: ruby-${{ matrix.ruby }}-coverage.json
55+
path: coverage-artifacts/ruby-${{ matrix.ruby }}-coverage.json
56+
retention-days: 1
5857

5958
coverage:
6059
needs: [ 'main' ]
@@ -67,36 +66,27 @@ jobs:
6766
with:
6867
fetch-depth: 0
6968

70-
- name: Setup Python
71-
uses: actions/setup-python@v2
72-
with:
73-
python-version: '3.9'
74-
architecture: 'x64'
75-
7669
- name: Setup Code Climate test-reporter
7770
run: |
78-
pip3 install awscli --user
7971
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
8072
chmod +x ./cc-test-reporter
8173
./cc-test-reporter before-build
8274
83-
- name: Configure AWS Credentials for Coverage Upload
84-
uses: aws-actions/configure-aws-credentials@v1
75+
- name: Download Coverage Reports
76+
uses: actions/download-artifact@v2
8577
with:
86-
aws-access-key-id: ${{ secrets.CI_AWS_ACCESS_KEY_ID }}
87-
aws-secret-access-key: ${{ secrets.CI_AWS_SECRET_ACCESS_KEY }}
88-
aws-region: us-east-1
78+
path: coverage-artifacts-temp
8979

90-
- name: Download Jobs Coverage
80+
- name: Finalize Artifacts
9181
run: |
92-
mkdir coverage
93-
aws s3 cp --recursive ${{ secrets.CI_ARTIFACTS_S3_URI }}/${{ github.repository }}/${{ github.run_number }}/ coverage/
82+
mkdir -p coverage-artifacts
83+
find coverage-artifacts-temp -mindepth 2 -type f -exec mv -i '{}' coverage-artifacts ';'
9484
9585
- name: Upload Coverage
9686
env:
9787
GIT_BRANCH: ${{ github.event_name == 'pull_request' && github.head_ref || 'main' }}
9888
GIT_COMMIT_SHA: ${{ github.sha }}
99-
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
89+
CC_TEST_REPORTER_ID: "5499f6009ecc1c84cd90aac7409351a1439946922f9405d43b81b1564afd21ed"
10090
run: |
101-
./cc-test-reporter sum-coverage coverage/ruby-*.simplecov.json --parts 5 --output coverage/coverage.json
102-
./cc-test-reporter upload-coverage --input coverage/coverage.json
91+
./cc-test-reporter sum-coverage coverage-artifacts/ruby-*-coverage.json --parts 5 --output coverage-artifacts/coverage.json
92+
./cc-test-reporter upload-coverage --input coverage-artifacts/coverage.json

0 commit comments

Comments
 (0)