feat(search): surface explorer views in search results #15419
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SVG diff | |
on: [push, pull_request] | |
jobs: | |
svgTester: | |
if: ${{ github.ref_name != 'master-1' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone repository | |
uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-node-yarn-deps | |
- uses: ./.github/actions/build-tsc | |
# Set branch names and token to be used for pushing to the owid-grapher-svgs repo. | |
# If on a feature branch, create a new branch in the owid-grapher-svgs repo with the same name. | |
# If on master, create a new branch with the current timestamp that will be later merged into master. | |
- name: Set branch name and token for OWID runs | |
if: ${{ github.repository_owner == 'owid' }} | |
shell: bash | |
run: | | |
[[ ${{ github.ref_name }} = 'master' ]] && suffix="__$(date +%s)" || suffix="" | |
echo "ORIGINAL_BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV | |
echo "PUSH_BRANCH_NAME=${{ github.ref_name }}$suffix" >> $GITHUB_ENV | |
echo "TOKEN=${{ secrets.GITHUBPAT }}" >> $GITHUB_ENV | |
- name: Set branch name and token for runs from a fork | |
if: ${{ github.repository_owner != 'owid' }} | |
shell: bash | |
run: | | |
[[ ${{ github.ref_name }} = 'master' ]] && suffix="__$(date +%s)" || suffix="" | |
echo "ORIGINAL_BRANCH_NAME=${{ github.ref_name }}" >> $GITHUB_ENV | |
echo "PUSH_BRANCH_NAME=${{ github.repository_owner }}/${{ github.ref_name }}$suffix" >> $GITHUB_ENV | |
echo "TOKEN=${{ github.token }}" >> $GITHUB_ENV | |
# Checkout the owid-grapher-svgs repo into a subfolder. Use a Personal Access Token for checkout so the | |
# action will have permission to push later on if required. | |
- name: Clone svg tester repo | |
uses: actions/checkout@v4 | |
with: | |
repository: "owid/owid-grapher-svgs" | |
path: owid-grapher-svgs | |
token: ${{ env.TOKEN }} | |
# Switch to or create a branch on that repo that matches the branch name we are on in the owid-grapher repo | |
# but only do this if we are not on master in owid-graphers (in this case we want to commit and push on master | |
# in owid-grapher-svgs as well) | |
- name: create owid-grapher-svgs local branch | |
if: ${{ env.PUSH_BRANCH_NAME != 'master'}} | |
working-directory: owid-grapher-svgs | |
run: git branch ${{ env.PUSH_BRANCH_NAME }} && git checkout ${{ env.PUSH_BRANCH_NAME }} | |
# Run the verify tool overwriting any svgs. Stdout is piped to compare-result which will be a 0 byte file if everything works or contain failed grapher ids otherwise | |
- name: Generate SVGs and compare to reference | |
id: run-verify-graphs | |
continue-on-error: true | |
env: | |
# using "ternary operator" from https://github.com/actions/runner/issues/409#issuecomment-752775072 | |
RM_ON_ERROR: ${{ env.ORIGINAL_BRANCH_NAME == 'master' && '' || '--rm-on-error' }} | |
run: node --enable-source-maps itsJustJavascript/devTools/svgTester/verify-graphs.js -i owid-grapher-svgs/configs -o owid-grapher-svgs/svg -r owid-grapher-svgs/svg $RM_ON_ERROR > compare-result | |
# If the last step failed we want to commit all changed svgs and push them to the new branch on the owid-grapher-svgs repo | |
- uses: stefanzweifel/git-auto-commit-action@v4 | |
if: ${{ steps.run-verify-graphs.outcome == 'failure' }} | |
with: | |
repository: ./owid-grapher-svgs/ | |
branch: ${{ env.PUSH_BRANCH_NAME }} | |
push_options: "--force" | |
commit_message: Automated commit with svg differences triggered by commit https://github.com/owid/owid-grapher/commit/${{github.sha}} | |
# Merge differences into owid-grapher-svgs master if we are on master in owid-grapher | |
- name: Merge into owid-grapher-svgs master | |
if: ${{ steps.run-verify-graphs.outcome == 'failure' && env.ORIGINAL_BRANCH_NAME == 'master' }} | |
working-directory: owid-grapher-svgs | |
run: | | |
git config user.name "${GITHUB_ACTOR}" | |
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" | |
git checkout master | |
git pull origin master | |
git merge -s ort -X theirs -m 'Automated merge commit with svg differences triggered by commit https://github.com/owid/owid-grapher/commit/${{github.sha}}' ${{ env.PUSH_BRANCH_NAME }} | |
git push --force origin master | |
# The action fails if there were any errors. | |
- name: Fail with error message if we had errors | |
if: ${{ steps.run-verify-graphs.outputs.num_errors > 0 }} | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.setFailed('Errors were thrown during checking! Please check diffs at https://github.com/owid/owid-grapher-svgs/commits/${{ env.PUSH_BRANCH_NAME }}') | |
# We make the action fail if there were any differences and if we are on a branch other than master. On master | |
# we do not want to fail because the differences on master are intended to be authorative and thus there is no | |
# reason to mark this action as failed. | |
- name: Fail with error message if we had differences | |
if: ${{ steps.run-verify-graphs.outputs.num_differences > 0 }} | |
continue-on-error: ${{ env.ORIGINAL_BRANCH_NAME == 'master' }} | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.setFailed('SVGs were different from reference! Please check diffs at https://github.com/owid/owid-grapher-svgs/commits/${{ env.PUSH_BRANCH_NAME }}') |