Skip to content

Add link checking step to CI pipeline #515

Add link checking step to CI pipeline

Add link checking step to CI pipeline #515

Workflow file for this run

name: Python application
on: [pull_request]
jobs:
build:
name: tests-pass
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
pull-requests: 'write'
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.7
uses: actions/setup-python@v4
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# - name: Test with pytest
# run: |
# coverage run -m pytest tests
# coverage xml -o coverage/python.xml
# - name: Report python coverage
# uses: orgoro/coverage@v3
# with:
# coverageFile: coverage/python.xml
# token: ${{ secrets.GITHUB_TOKEN }}
- name: 'Authenticate to Google Cloud'
id: 'auth'
uses: 'google-github-actions/auth@v1'
with:
workload_identity_provider: 'projects/855475113448/locations/global/workloadIdentityPools/eto-github/providers/eto-github'
service_account: 'eto-artifact-registry-github@gcp-cset-projects.iam.gserviceaccount.com'
token_format: 'access_token'
- name: 'Log into Artifact Registry'
uses: 'docker/login-action@v2'
with:
registry: us-east1-docker.pkg.dev
username: 'oauth2accesstoken'
password: '${{ steps.auth.outputs.access_token }}'
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Test with jest
shell: bash
run: |
python3 scripts/preprocess.py
cd supply-chain
npm run artifactregistry-login
npm install
npm test -- --coverage --coverageReporters="json-summary" --coverageReporters="text" | tee ./coverage.txt
# - name: Report javascript coverage
# uses: MishaKav/[email protected]
# with:
# title: "JavaScript Coverage"
# summary-title: "Summary"
# coverage-title: "Modified Files"
# github-token: ${{ secrets.GITHUB_TOKEN }}
# report-only-changed-files: true
# coverage-path: ./supply-chain/coverage.txt
# coverage-summary-path: ./supply-chain/coverage/coverage-summary.json
# coverage-path-prefix: supply-chain/src/
# - name: Run linting
# run: |
# pre-commit run --all-files
- name: Build output files
run: |
cd supply-chain
npm run build
- name: Check links in built files
id: link_check
run: |
cd supply-chain
find public -name "*.js" -exec grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:()-]+" {} \; | sort -u > linklist.txt
printf '%s\n%s\n' "# LinkChecker URL list" "$(cat linklist.txt)" > linklist.txt
linkchecker linklist.txt --check-extern --ignore-url="https://.*\.fastly\.net/.*" --ignore-url="https://.*\.mapbox\..*" -o failures > output.txt || true
cat output.txt
echo "link_check=$(wc -l < output.txt | sed 's/^ *//g')" >> $GITHUB_OUTPUT
- name: Edit PR comment about link checking
if: steps.link_check.outputs.link_check > 0
uses: thollander/actions-comment-pull-request@v2
with:
message: |
There are ${{ steps.link_check.outputs.link_check }} broken links. Check the output of the link check build step for details.
comment_tag: link_check_msg