CI: fixup detection of changes #145
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: CI | |
on: | |
push: | |
branches: [master] | |
tags: | |
- "*" | |
pull_request: | |
branches: [master] | |
defaults: | |
run: | |
working-directory: python | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: "3.11" | |
- name: Install Hatch | |
run: pip install --upgrade hatch | |
- name: lint | |
run: hatch run lint | |
test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
python-version: [3.7, 3.8, 3.9, "3.10", "3.11"] | |
exclude: | |
# Python <=3.7 is not available on mac builds on GitHub Actions | |
- os: macos-latest | |
python-version: '3.7' | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Hatch | |
run: pip install --upgrade hatch | |
- name: pytest | |
run: hatch run test-CI | |
normalize: | |
name: Normalize, regenerate, and push data | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: "." | |
env: | |
CI_COMMIT_MESSAGE: "chore: normalize data and re-sync" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Need this commit and last. Otherwise would overwrite all history | |
# (don't ask how I know) | |
fetch-depth: 2 | |
- uses: actions/setup-python@v5 | |
- name: Normalize the .csv | |
run: python normalize.py | |
- name: Test that SQL data is up to date - normalized | |
run: python sql/generate_sql.py | |
- name: Check for changes | |
id: changes | |
run: echo "::set-output name=diff::$(git diff)" | |
- name: Amend and push changes | |
if: steps.changes.outputs.diff != '' | |
run: | | |
git config user.name "$(git log -n 1 --pretty=format:%an)" | |
git config user.email "$(git log -n 1 --pretty=format:%ae)" | |
git add . | |
git commit --amend --no-edit | |
git push --force |