ci: validate .env.example by copying it before test runs #2180
Workflow file for this run
This file contains hidden or 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: 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/ |