Skip to content

ci: validate .env.example by copying it before test runs #2180

ci: validate .env.example by copying it before test runs

ci: validate .env.example by copying it before test runs #2180

Workflow file for this run

name: Tests
on:
pull_request:
push:
branches:
- main
jobs:
ubuntu:
name: "Ubuntu - latest"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: make test
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 - latest"
runs-on: macos-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: make test
windows:
name: "On windows (${{ matrix.name }})"
timeout-minutes: 10
runs-on: windows-latest
strategy:
matrix:
include:
- name: "acceptance a-l"
test_path: "tests/acceptance/bashunit_[a-l]*_test.sh"
- name: "acceptance m-z"
test_path: "tests/acceptance/bashunit_[m-z]*_test.sh tests/acceptance/[i-p]*_test.sh"
- name: functional
test_path: "tests/functional/*_test.sh"
- name: "unit a-b"
test_path: "tests/unit/[a-b]*_test.sh"
- name: "unit c"
test_path: "tests/unit/ch*_test.sh tests/unit/cl*_test.sh tests/unit/console*_test.sh tests/unit/cu*_test.sh"
- name: "unit coverage"
test_path: "tests/unit/coverage_*_test.sh"
- name: "unit d-p"
test_path: "tests/unit/[d-p]*_test.sh"
- name: "unit r-z"
test_path: "tests/unit/[r-z]*_test.sh"
fail-fast: false
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 ${{ matrix.test_path }}
alpine:
name: "On alpine-latest"
runs-on: ubuntu-latest
timeout-minutes: 10
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; make test';"
simple-output:
name: "Simple output"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests
run: |
./bashunit --simple tests/
simple-output-parallel:
name: "Simple output in parallel"
runs-on: ubuntu-latest
timeout-minutes: 10
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 --simple tests/
extended-output-parallel:
name: "Extended output in parallel"
runs-on: ubuntu-latest
timeout-minutes: 10
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 tests/
strict-mode:
name: "Strict mode"
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup Config
run: cp .env.example .env
- name: Run Tests with strict mode
run: |
./bashunit --parallel --simple --strict tests/