Skip to content

Commit

Permalink
Create main.yml
Browse files Browse the repository at this point in the history
Based on [etils GitHub Action](https://github.com/google/etils/blob/main/.github/workflows/pytest_and_autopublish.yml).

References tests that are not currently in the repository.
  • Loading branch information
lukebaumann committed Oct 22, 2024
1 parent 6eb1efd commit d06d6ce
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Unittests & Auto-publish

# Allow to trigger the workflow manually (e.g. when deps changes)
on: [push, workflow_dispatch]

jobs:
unittest-job:
strategy:
fail-fast: false
matrix:
python-version: ['3.10', '3.11', '3.12']
runs-on: ubuntu-latest
timeout-minutes: 30

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.python-version }}
cancel-in-progress: true

steps:
- uses: actions/checkout@v3

# Install deps
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- run: pip --version
- run: pip install -e .
- run: pip freeze

# Run tests
- name: Run core tests
run: python -m unittest discover --pattern "*_test.py" --start-directory "pathwaysutils/test"

# Auto-publish when version is increased
publish-job:
# Only try to publish if:
# * Repo is self (prevents running from forks)
# * Branch is `main`
if: |
github.repository == 'google/etils'
&& github.ref == 'refs/heads/main'
needs: unittest-job # Only publish after tests are successful
runs-on: ubuntu-latest
permissions:
contents: write
timeout-minutes: 30

steps:
# Publish the package (if local `__version__` > pip version)
- uses: etils-actions/pypi-auto-publish@v1
with:
pypi-token: ${{ secrets.PYPI_API_TOKEN }}
gh-token: ${{ secrets.GH_TOKEN }}
parse-changelog: true

0 comments on commit d06d6ce

Please sign in to comment.