# This is a basic workflow to help you get started with Actions name: CI # Controls when the workflow will run on: pull_request: paths-ignore: - 'guix.scm' - 'manifest.scm' - 'channels-lock.scm' - '.envrc' - '.gitignore' - 'pre-commit-*.yaml' - Dockerfile - README.* - LICENSE - 'sample_settings/**' - 'etc/**' push: # Sequence of patterns matched against refs/tags branches: ["master"] paths-ignore: - 'guix.scm' - 'manifest.scm' - 'channels-lock.scm' - '.envrc' - '.gitignore' - 'pre-commit-*.yaml' - Dockerfile - README.* - LICENSE - 'sample_settings/**' - 'etc/**' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: run-tests-dev: strategy: fail-fast: false matrix: python-version: ["3.10", "3.11"] poetry-version: ["1.1.12", "1.7.0"] os: [ubuntu-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Run image uses: abatilo/actions-poetry@v2 with: poetry-version: ${{ matrix.poetry-version }} - name: Setup a local virtual environment run: | poetry config virtualenvs.create true --local poetry config virtualenvs.in-project true --local - uses: actions/cache@v3 name: Define a cache for the virtual environment based on the dependencies lock file with: path: ./.venv key: venv-${{ hashFiles('poetry.lock') }} - name: Install dependencies run: scripts/install_github_actions_dev_dependencies.sh - name: Run tests in dev env run: scripts/run_pipeline_tests.sh