attempt to cache virtual environment to share between CI jobs #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: lint and test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
test-code: | |
name: Lint and test | |
runs-on: ubuntu-latest | |
container: | |
image: python:3.10-alpine | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Verify Python installation | |
run: | | |
ls -la /__t/Python/ | |
python --version | |
- name: install curl and git | |
run: | | |
apk add --no-cache curl git | |
- name: install build-base package | |
run: | | |
apk add --no-cache build-base | |
- name: install uv | |
run: | | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: install venv | |
run: | | |
source $HOME/.cargo/env | |
uv venv .venv -p 3.10 | |
- name: install requirements | |
run: | | |
source $HOME/.cargo/env | |
source .venv/bin/activate | |
uv pip install --upgrade -r requirements.txt | |
uv pip install --upgrade -r requirements-rl.txt | |
uv pip install --upgrade -r requirements-dev.txt | |
- name: run black | |
run: | | |
source .venv/bin/activate | |
python -m black --config pyproject.toml --check --diff . | |
- name: get all Python files | |
id: list_files | |
run: | | |
echo "files=$(git ls-files '*.py' '*.pyi' | xargs)" >> $GITHUB_OUTPUT | |
- name: run Pylint on files | |
run: | | |
source .venv/bin/activate | |
files="${{ steps.list_files.outputs.files }}" | |
if [ -n "$files" ]; then | |
pylint --rcfile=.pylintrc $files | |
else | |
echo "No Python files found." | |
fi | |
- name: Analyse code with pyright | |
run: | | |
source .venv/bin/activate | |
python -m pyright $(git ls-files '*.py' '*.pyi') | |
- name: install node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
- name: install packages | |
uses: borales/actions-yarn@v4 | |
with: | |
cmd: install # will run `yarn install` command | |
env: | |
# A warning is thrown here unnecessarily. tracking issue here: | |
# https://github.com/github/vscode-github-actions/issues/222 | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # if needed | |
- name: install foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
with: | |
version: nightly | |
- name: run pytest with coverage | |
run: | | |
source .venv/bin/activate | |
IN_CI=true coverage run -m pytest | |
- name: generate coverage report | |
run: | | |
source .venv/bin/activate | |
coverage xml -i | |
coverage html -i | |
- name: upload coverage report to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
flags: unittests | |
fail_ci_if_error: true | |
# A warning is thrown here unnecessarily. tracking issue here: | |
# https://github.com/github/vscode-github-actions/issues/222 | |
token: ${{ secrets.CODECOV_TOKEN }} |