Merge pull request #14 from robin-janssen/add-simple-primordial #20
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 Pipeline | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
branches: | |
- main | |
- develop | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.10'] | |
steps: | |
- name: Check out the repository | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
run: | | |
curl -sSL https://install.python-poetry.org | python3 - | |
export PATH="$HOME/.local/bin:$PATH" | |
- name: Install project with dev dependencies | |
run: | | |
poetry install --with dev | |
# Step to detect changes in pyproject.toml or poetry.lock | |
- name: Check for dependency changes | |
id: check-deps | |
run: | | |
if git diff --name-only HEAD~1 | grep -qE 'pyproject.toml|poetry.lock'; then | |
echo "dependencies-changed=true" >> $GITHUB_ENV | |
else | |
echo "dependencies-changed=false" >> $GITHUB_ENV | |
fi | |
# Step to generate requirements.txt if dependencies have changed | |
- name: Generate requirements.txt | |
if: env.dependencies-changed == 'true' | |
run: | | |
poetry export -f requirements.txt --output requirements.txt --without-hashes | |
# Commit and push the updated requirements.txt if dependencies have changed | |
- name: Commit and push updated requirements.txt | |
if: env.dependencies-changed == 'true' | |
run: | | |
git config --global user.name 'github-actions[bot]' | |
git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
git add requirements.txt | |
git commit -m "Update requirements.txt [skip ci]" | |
git push | |
# Run Black (auto-reformat) using Poetry | |
- name: Run Black (auto-reformat) | |
run: | | |
poetry run black . | |
# Run isort (auto-reformat) using Poetry | |
- name: Run isort (auto-reformat) | |
run: | | |
poetry run isort . | |
# Run pytest using Poetry | |
- name: Run pytest | |
run: | | |
poetry run pytest |