ci: add source before make #13
Workflow file for this run
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] | |
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@v4 | |
with: | |
path: .venv | |
key: ${{ runner.os }}-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: ${{ runner.os }}-venv | |
- 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: ${{ runner.os }}-venv | |
- 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: ${{ runner.os }}-venv | |
- name: Run the test suite and coverage | |
run: | | |
sudo apt-get install -y --no-install-recommends pandoc texlive texlive-latex-extra | |
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: ${{ runner.os }}-venv | |
- name: Build the docs | |
run: | | |
sudo apt-get install -y --no-install-recommends pandoc | |
source .venv/bin/activate | |
make docs-ci | |
upload-docs: | |
# if: success() && github.ref == 'refs/heads/main' | |
needs: [test,docs] | |
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: ${{ runner.os }}-venv | |
- name: Build docs for publishing | |
run: | | |
sudo apt-get install -y --no-install-recommends pandoc | |
source .venv/bin/activate | |
make pages-ci | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v1 | |
with: | |
path: docs/build/public | |
pages: | |
needs: [upload-docs] | |
# if: success() && 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: success() && github.ref == 'refs/heads/main' | |
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: ${{ runner.os }}-venv | |
- name: Build the package | |
run: | | |
sudo apt-get install -y --no-install-recommends pandoc texlive texlive-latex-extra | |
source .venv/bin/activate | |
make build-ci | |
- name: Upload build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package-build | |
path: ./dist/* | |
publish: | |
needs: [pages,build] | |
if: success() && github.ref == 'refs/heads/main' && startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-22.04 | |
environment: | |
name: testpypi | |
url: https://test.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: | |
# By omitting the name we are downloading all the artifacts | |
path: ./dist/ | |
- name: Publish the package | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
repository-url: https://test.pypi.org/legacy/ | |