Skip to content

Merge pull request #72 from scruffaluff/feature/remove-bloatware #1268

Merge pull request #72 from scruffaluff/feature/remove-bloatware

Merge pull request #72 from scruffaluff/feature/remove-bloatware #1268

Workflow file for this run

# 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