Update FreeBSD packages to Python 3.11 #1269
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
# GitHub Actions workflow file. | |
# | |
# For more information, visit | |
# https://docs.github.com/actions/learn-github-actions. | |
--- | |
name: build | |
# Makes workflow run on any push or pull request. | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "**" | |
workflow_dispatch: | |
inputs: | |
debug: | |
default: false | |
description: Use Tmate session for debugging | |
type: boolean | |
job: | |
default: test | |
description: CI job to run | |
options: | |
- documenation | |
- lint | |
- posix | |
- powershell | |
type: choice | |
env: | |
NPM_CONFIG_CACHE: "${{ github.workspace }}/.cache/npm" | |
PIP_CACHE_DIR: "${{ github.workspace }}/.cache/pip" | |
PIP_DISABLE_PIP_VERSION_CHECK: "true" | |
PIP_ROOT_USER_ACTION: ignore | |
POETRY_CACHE_DIR: "${{ github.workspace }}/.cache/pypoetry" | |
POETRY_VIRTUALENVS_IN_PROJECT: "true" | |
PYTHON_KEYRING_BACKEND: "keyring.backends.null.Keyring" | |
jobs: | |
documenation: | |
if: >- | |
${{ github.event_name != 'workflow_dispatch' || inputs.job == | |
'documentation' }} | |
name: Build documentation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache packages | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.cache | |
.venv | |
node_modules | |
key: >- | |
node-22_python-3.12_${{ runner.os }}_npm-${{ | |
hashFiles('package-lock.json') }}_poetry-${{ | |
hashFiles('poetry.lock') }} | |
- name: Install Just | |
run: >- | |
curl -LSfs https://just.systems/install.sh | sh -s -- --to | |
/usr/local/bin | |
- name: Install Node interpreter | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "22" | |
- name: Install Python interpreter | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install development dependencies | |
run: just setup | |
- name: Build documentation | |
run: just docs | |
- name: Setup Tmate session if debug enabled | |
if: >- | |
${{ always() && github.event_name == 'workflow_dispatch' && | |
inputs.debug }} | |
timeout-minutes: 60 | |
uses: mxschmitt/action-tmate@v3 | |
lint: | |
if: ${{ github.event_name != 'workflow_dispatch' || inputs.job == 'lint' }} | |
name: Check code with formatter and linter | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache packages | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.cache | |
.venv | |
node_modules | |
key: >- | |
node-22_python-3.12_${{ runner.os }}_npm-${{ | |
hashFiles('package-lock.json') }}_poetry-${{ | |
hashFiles('poetry.lock') }} | |
- name: Install Just | |
run: >- | |
curl -LSfs https://just.systems/install.sh | sh -s -- --to | |
/usr/local/bin | |
- name: Install Node interpreter | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "22" | |
- name: Install Python interpreter | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install development dependencies | |
run: just setup | |
- name: Check code formatting | |
run: just format | |
- name: Run code analyses | |
run: just lint | |
- name: Setup Tmate session if debug enabled | |
if: >- | |
${{ always() && github.event_name == 'workflow_dispatch' && | |
inputs.debug }} | |
timeout-minutes: 60 | |
uses: mxschmitt/action-tmate@v3 | |
posix: | |
if: >- | |
${{ github.event_name != 'workflow_dispatch' || inputs.job == 'posix' }} | |
name: Run unit tests for POSIX scripts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache packages | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.cache | |
.venv | |
node_modules | |
key: >- | |
node-22_python-3.12_${{ runner.os }}_npm-${{ | |
hashFiles('package-lock.json') }}_poetry-${{ | |
hashFiles('poetry.lock') }} | |
- name: Install Just | |
run: >- | |
curl -LSfs https://just.systems/install.sh | sh -s -- --to | |
/usr/local/bin | |
- name: Install Node interpreter | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "22" | |
- name: Install Python interpreter | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install development dependencies | |
run: just setup | |
- name: Build test suites | |
run: just test | |
- name: Setup Tmate session if debug enabled | |
if: >- | |
${{ always() && github.event_name == 'workflow_dispatch' && | |
inputs.debug }} | |
timeout-minutes: 60 | |
uses: mxschmitt/action-tmate@v3 | |
powershell: | |
if: >- | |
${{ github.event_name != 'workflow_dispatch' || inputs.job == 'powershell' | |
}} | |
name: Run linter and unit tests for PowerShell scripts | |
runs-on: windows-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache packages | |
uses: actions/cache@v4 | |
with: | |
path: | | |
.cache | |
node_modules | |
key: >- | |
node-22_${{ runner.os }}_npm-${{ hashFiles('package-lock.json') }} | |
- name: Install Just for Windows | |
run: choco install --yes just | |
- name: Install Node interpreter | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "22" | |
- name: Install development dependencies | |
run: just setup | |
shell: powershell | |
- name: Check code formatting | |
run: just format | |
- name: Run code analyses | |
run: just lint | |
- name: Run test suites | |
run: just test | |
- name: Setup Tmate session if debug enabled | |
if: >- | |
${{ always() && github.event_name == 'workflow_dispatch' && | |
inputs.debug }} | |
timeout-minutes: 60 | |
uses: mxschmitt/action-tmate@v3 |