[Tidy] Improve markdown strip and add tests #1461
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: Checks for VizroAI | |
defaults: | |
run: | |
working-directory: vizro-ai | |
on: | |
push: | |
branches: [main] | |
paths: | |
- "vizro-ai/**" | |
pull_request: | |
branches: | |
- "main" | |
paths: | |
- "vizro-ai/**" | |
env: | |
PYTHONUNBUFFERED: 1 | |
FORCE_COLOR: 1 | |
PYTHON_VERSION: "3.12" | |
jobs: | |
checks-vizro-ai: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Use fetch-depth of 2 to enable the changelog fragment check, which only runs in a pull request, not on push. | |
# See https://stackoverflow.com/questions/74265821/get-modified-files-in-github-actions | |
fetch-depth: 2 | |
- name: Set up Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Install Hatch | |
run: pip install hatch | |
- name: Show dependency tree | |
run: hatch run pip tree | |
- name: Find changed files to see if changelog fragment needed | |
id: changed-files | |
if: ${{ github.event_name == 'pull_request' }} | |
# --no-renames is required so that an empty changelog file added in a release PR always counts as added rather | |
# than a renamed version of an already-existing empty changelog file. | |
run: | | |
echo "changelog_fragment_added=$(git diff --name-only --no-renames --diff-filter=A HEAD^1 HEAD -- 'changelog.d/*.md' | xargs)" >> $GITHUB_OUTPUT | |
echo "source_code_changed=$(git diff --name-only HEAD^1 HEAD -- 'src' | xargs)" >> $GITHUB_OUTPUT | |
- name: Fail if changelog fragment needed and wasn't added | |
if: ${{ steps.changed-files.outcome != 'skipped' && steps.changed-files.outputs.source_code_changed && !steps.changed-files.outputs.changelog_fragment_added}} | |
run: | | |
echo "No changelog fragment .md file within changelog.d was detected. Run 'hatch run changelog:add' to create such a fragment." | |
echo "If your PR contains changes that should be mentioned in the CHANGELOG in the next release, please uncomment the relevant section in your created fragment and describe the changes to the user." | |
echo "If your changes are not relevant for the CHANGELOG, please save and commit the file as is." | |
exit 1 |