version 2024.08.03 #83
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: main | |
on: [push] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
setup: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Install dependencies | |
run: make ci-setup | |
- name: Cache venv | |
id: cache-venv | |
uses: actions/cache/save@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
lint: | |
runs-on: ubuntu-22.04 | |
needs: [setup] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Run the linter | |
run: | | |
source .venv/bin/activate | |
make lint-ci | |
type-check: | |
runs-on: ubuntu-22.04 | |
needs: [setup] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Run the type-checker | |
run: | | |
source .venv/bin/activate | |
make type-check-ci | |
test: | |
runs-on: ubuntu-22.04 | |
needs: [lint,type-check] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Run the test suite and coverage | |
run: | | |
source .venv/bin/activate | |
make coverage-ci | |
make doctest-ci | |
docs: | |
runs-on: ubuntu-22.04 | |
needs: [lint,type-check] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Build the docs | |
run: | | |
source .venv/bin/activate | |
make docs-ci | |
upload-docs: | |
if: github.ref == 'refs/heads/main' | |
needs: [test,docs] | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Build docs for publishing | |
run: | | |
source .venv/bin/activate | |
make pages-ci | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: docs/build/public | |
pages: | |
needs: [upload-docs] | |
if: github.ref == 'refs/heads/main' | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Publish to pages | |
id: deployment | |
uses: actions/deploy-pages@v4 | |
build: | |
needs: [test,docs] | |
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Restore venv | |
id: cache-venv-restore | |
uses: actions/cache/restore@v4 | |
with: | |
path: .venv | |
key: ${{ github.sha }}-venv | |
fail-on-cache-miss: true | |
- name: Build the package | |
run: | | |
source .venv/bin/activate | |
make build-ci | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package-build-${{ github.sha }} | |
path: ./dist/* | |
publish: | |
needs: [build] | |
if: startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-22.04 | |
environment: | |
name: pypi | |
url: https://pypi.org/p/crypto-condor | |
permissions: | |
contents: write | |
id-token: write | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
cache: "pip" | |
- name: Download build | |
uses: actions/download-artifact@v3 | |
with: | |
name: package-build-${{ github.sha }} | |
path: ./dist/ | |
- name: Publish the package | |
uses: pypa/gh-action-pypi-publish@release/v1 | |