chore: correct syntax for setting PATH in CI/CD workflow #21
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
# GitHub action for CI/CD: linting/testing, releasing, and publishing | |
name: ci | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install flake8 and pytest | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install flake8 pytest | |
- name: Lint with flake8 | |
run: | | |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
flake8 . --count --ignore=E501,F401,C901 --exit-zero --max-line-length=127 --show-source --statistics | |
- name: Install fathomnet | |
run: | | |
python -m pip install . | |
- name: Test with pytest | |
run: | | |
pytest -v test | |
release: | |
needs: test | |
runs-on: ubuntu-latest | |
concurrency: release | |
permissions: | |
id-token: write | |
contents: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Python Semantic Release | |
id: semantic_release | |
uses: python-semantic-release/python-semantic-release@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
outputs: | |
released: ${{ steps.semantic_release.outputs.released }} | |
version: ${{ steps.semantic_release.outputs.version }} | |
publish: | |
needs: release | |
if: needs.release.outputs.released == 'true' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: v${{ needs.release.outputs.version }} | |
- name: Set up Python 3.12 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: 3.12 | |
- name: Install Rye | |
run: | | |
curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.38.0" RYE_INSTALL_OPTION="--yes" bash | |
echo "PATH=${HOME}/.rye/shims:${PATH}" >> $GITHUB_ENV | |
- name: Build | |
run: | | |
rye build | |
- name: Publish to PyPI | |
run: | | |
rye publish --token ${{ secrets.PYPI_TOKEN }} --yes |