Skip to content

fix(runner): run teardown after setup failure #3217

fix(runner): run teardown after setup failure

fix(runner): run teardown after setup failure #3217

Workflow file for this run

name: Tests
on:
pull_request:
paths-ignore:
- 'docs/**'
- 'adrs/**'
- '**/*.md'
- '.github/ISSUE_TEMPLATE/**'
- '.github/PULL_REQUEST_TEMPLATE.md'
push:
branches:
- main
concurrency:
group: tests-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
ubuntu:
name: "Ubuntu - ${{ matrix.name }}"
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "make test"
command: "make test"
- name: "simple"
command: "./bashunit --simple tests/"
- name: "parallel simple"
command: "./bashunit --parallel --simple tests/"
- name: "parallel extended"
command: "./bashunit --parallel tests/"
- name: "strict"
command: "./bashunit --parallel --simple --strict tests/"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: ${{ matrix.command }}
localized-ubuntu:
name: "Ubuntu - ${{ matrix.name }} Locale"
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "Spanish"
lang: "es_ES.UTF-8"
tz: "Europe/Madrid"
language_pack: "language-pack-es-base"
- name: "Brazilian"
lang: "pt_BR.UTF-8"
tz: "America/Sao_Paulo"
language_pack: "language-pack-pt-base"
- name: "Japanese"
lang: "ja_JP.UTF-8"
tz: "Asia/Tokyo"
language_pack: "language-pack-ja-base"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install locales
run: |
sudo apt-get update
sudo apt-get install -y locales "${{ matrix.language_pack }}"
sudo locale-gen "${{ matrix.lang }}"
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
env:
LANG: ${{ matrix.lang }}
LC_ALL: ${{ matrix.lang }}
TZ: ${{ matrix.tz }}
run: make test
macos:
name: "macOS - ${{ matrix.name }}"
runs-on: macos-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "functional"
test_path: "tests/functional/*_test.sh"
- name: "unit 1/5"
test_path: "--shard 1/5 tests/unit"
- name: "unit 2/5"
test_path: "--shard 2/5 tests/unit"
- name: "unit 3/5"
test_path: "--shard 3/5 tests/unit"
- name: "unit 4/5"
test_path: "--shard 4/5 tests/unit"
- name: "unit 5/5"
test_path: "--shard 5/5 tests/unit"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: ./bashunit --parallel --jobs 4 ${{ matrix.test_path }}
macos-acceptance:
name: "macOS - acceptance (${{ matrix.name }})"
if: github.event_name == 'push'
runs-on: macos-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "1/3"
test_path: "--shard 1/3 tests/acceptance"
- name: "2/3"
test_path: "--shard 2/3 tests/acceptance"
- name: "3/3"
test_path: "--shard 3/3 tests/acceptance"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: ./bashunit --parallel --jobs 4 ${{ matrix.test_path }}
windows:
name: "Windows - ${{ matrix.name }}"
timeout-minutes: 10
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- name: "functional"
test_path: "tests/functional/*_test.sh"
- name: "unit 1/5"
test_path: "--shard 1/5 tests/unit"
- name: "unit 2/5"
test_path: "--shard 2/5 tests/unit"
- name: "unit 3/5"
test_path: "--shard 3/5 tests/unit"
- name: "unit 4/5"
test_path: "--shard 4/5 tests/unit"
- name: "unit 5/5"
test_path: "--shard 5/5 tests/unit"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
shell: bash
run: cp .env.example .env
- name: Run tests
shell: bash
run: ./bashunit --parallel --jobs 4 ${{ matrix.test_path }}
windows-acceptance:
name: "windows-acceptance (${{ matrix.name }})"
if: github.event_name == 'push'
timeout-minutes: 10
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- name: "1/3"
test_path: "--shard 1/3 tests/acceptance"
- name: "2/3"
test_path: "--shard 2/3 tests/acceptance"
- name: "3/3"
test_path: "--shard 3/3 tests/acceptance"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
shell: bash
run: cp .env.example .env
- name: Run tests
shell: bash
run: ./bashunit --parallel --jobs 4 ${{ matrix.test_path }}
alpine:
name: "Alpine - ${{ matrix.name }}"
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "sequential"
command: "make test"
- name: "parallel simple"
command: "./bashunit --parallel --simple tests/"
- name: "parallel extended"
command: "./bashunit --parallel tests/"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: |
docker run --rm -v "$(pwd)":/project alpine:latest /bin/sh -c " \
apk update && \
apk add --no-cache bash make git jq && \
adduser -D builder && \
chown -R builder /project && \
su - builder -c 'cd /project; ${{ matrix.command }}';"