Bump github/codeql-action from 2 to 3 #1295
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: Test | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
check-for-api-key: | |
name: Check for OpenAI API key | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check OPENAI_API_KEY repository secret | |
run: grep -q '^sk-' <<<'${{ secrets.OPENAI_API_KEY }}' | |
read-blocking-config: | |
name: Read blocking configuration | |
runs-on: ubuntu-latest | |
outputs: | |
use-mutex: ${{ steps.read-blocking-config-variable.outputs.use-mutex }} | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v4 | |
- name: Read TESTS_CI_NONBLOCKING variable | |
id: read-blocking-config-variable | |
run: | | |
# Allowed values: "false" (or "no", "0", ""), "true" (or "yes", "1"). | |
.github/workflows/get-blocking-config | |
env: | |
TESTS_CI_NONBLOCKING: ${{ vars.TESTS_CI_NONBLOCKING }} | |
tests-poetry: | |
name: Tests (Poetry) | |
needs: [check-for-api-key, read-blocking-config] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ['3.11', '3.10', '3.9', '3.8'] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v4 | |
- name: Set up Python environment | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install poetry | |
run: pip install poetry # TODO: Explore other approaches. | |
- name: Install the environment | |
run: poetry install --only=main,test | |
- name: Print Python version | |
run: poetry run python -V | |
- name: Validate Python version | |
run: | | |
poetry run python -c \ | |
'import sys; assert sys.version.startswith(f"{sys.argv[1]}.")' \ | |
${{ matrix.python-version }} | |
- name: Set up mutex | |
if: needs.read-blocking-config.outputs.use-mutex != 'false' | |
uses: EliahKagan/actions-mutex@v2 | |
- name: Run tests | |
run: poetry run python -m unittest -v | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
TESTS_CACHE_EMBEDDING_CALLS_IN_MEMORY: 'yes' | |
TESTS_LOGGING_LEVEL: 'INFO' | |
tests-conda: | |
name: Tests (Conda) | |
needs: [check-for-api-key, read-blocking-config] | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ['3.11', '3.10', '3.9', '3.8'] | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: write | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v4 | |
- name: Substitute Python version | |
run: | | |
perl -i -spwe 's/^ *- python=\K.+$/$pyver/' -- \ | |
-pyver=${{ matrix.python-version }} environment.yml | |
- name: Set up micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: environment.yml | |
- name: Make editable install | |
run: pip install -e . | |
- name: Print Python version | |
run: python -V | |
- name: Validate Python version | |
run: | | |
python -c \ | |
'import sys; assert sys.version.startswith(f"{sys.argv[1]}.")' \ | |
${{ matrix.python-version }} | |
- name: Set up mutex | |
if: needs.read-blocking-config.outputs.use-mutex != 'false' | |
uses: EliahKagan/actions-mutex@v2 | |
- name: Run tests | |
run: python -m unittest -v | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
TESTS_CACHE_EMBEDDING_CALLS_IN_MEMORY: 'yes' | |
TESTS_LOGGING_LEVEL: 'INFO' | |
tests-as-scripts: | |
name: Tests as scripts | |
needs: [check-for-api-key, read-blocking-config] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Check out source repository | |
uses: actions/checkout@v4 | |
- name: Set up micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: environment.yml | |
- name: Make editable install | |
run: pip install -e . | |
- name: Print Python version | |
run: python -V | |
- name: Validate Python version | |
run: python -c 'import sys; assert sys.version_info[:2] == (3, 11)' | |
- name: Set up mutex | |
if: needs.read-blocking-config.outputs.use-mutex != 'false' | |
uses: EliahKagan/actions-mutex@v2 | |
- name: Run test modules as scripts | |
run: .github/workflows/run-test-scripts | |
env: | |
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
TESTS_CACHE_EMBEDDING_CALLS_IN_MEMORY: 'no' | |
TESTS_LOGGING_LEVEL: 'INFO' |