Skip to content

attempt to cache virtual environment to share between CI jobs #5

attempt to cache virtual environment to share between CI jobs

attempt to cache virtual environment to share between CI jobs #5

Workflow file for this run

name: setup
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: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: install venv
run: uv venv .venv -p 3.10
- name: install requirements
run: |
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 }}
docker:
name: Docker image
runs-on: ubuntu-latest
needs: setup-and-upload

Check failure on line 89 in .github/workflows/jobs.yml

View workflow run for this annotation

GitHub Actions / setup

Invalid workflow file

The workflow is not valid. .github/workflows/jobs.yml (Line: 89, Col: 12): Job 'docker' depends on unknown job 'setup-and-upload'.
permissions:
contents: read
packages: write
steps:
- name: Check out code
uses: actions/checkout@v3
with:
submodules: recursive
token: ${{secrets.GITHUB_TOKEN}}
- name: Log in to the Container registry
uses: docker/[email protected]
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/[email protected]
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
# Add a version tag when a valid semver tag is pushed.
type=semver,pattern={{version}}
# Add the edge tag to every image to represent the latest commit to main
type=edge,branch=main
- name: Build and push Docker image
uses: docker/[email protected]
with:
context: .
push: true
file: ./Dockerfile
tags: |
${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}