Automate plugin metadata insertion #1315
This file contains hidden or 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 | |
| # WORD OF CAUTION: | |
| # TO anyone modifying this | |
| # Things will break if you modify this | |
| # without understanding how it works | |
| # A simple flow of this file: | |
| # Apply AutoPEP8 → Apply Plugin Metadata → CRITICAL COMMIT (format + plugin meta) | |
| # ← ← ← ← ← ↵ | |
| # ↪ Apply Version Metadata → Commit (version meta) → Tests | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request_target: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| fetch-depth: 0 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Install Dependencies | |
| run: | | |
| python -m pip install -U pip | |
| python -m pip install -U pycodestyle==2.12.1 autopep8 | |
| python -m pip install -U -r test/pip_reqs.txt | |
| - name: Apply AutoPEP8 | |
| run: | | |
| autopep8 --in-place --recursive --max-line-length=100 . | |
| - name: Apply Plugin Metadata | |
| # should this only be run on pull_request_target and not pushes?? | |
| run: | | |
| LAST_COMMIT_HASH=$(git log --pretty=format:'%H' -n 1) | |
| CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "$LAST_COMMIT_HASH") | |
| python test/auto_apply_plugin_metadata.py "$CHANGED_FILES" | |
| # This is a CRITICAL COMMIT for the next step | |
| # which bases this as the commit to get the sha to store in index.json or plugin.json | |
| - name: Commit Plugin Metadata and AutoPEP8 | |
| uses: stefanzweifel/git-auto-commit-action@v7 | |
| with: | |
| commit_message: "[ci] apply-plugin-metadata-and-formatting" | |
| branch: ${{ github.head_ref }} | |
| - name: Apply Version Metadata | |
| run: | | |
| python test/auto_apply_version_metadata.py $(git log --pretty=format:'%h' -n 1) | |
| - name: Commit Version Metadata | |
| uses: stefanzweifel/git-auto-commit-action@v7 | |
| with: | |
| commit_message: "[ci] apply-version-metadata" | |
| branch: ${{ github.head_ref }} | |
| - name: Refresh Repository | |
| run: | | |
| git fetch origin | |
| git reset --hard HEAD | |
| - name: Execute Tests | |
| run: | | |
| python -m unittest discover -v |