Skip to content

Commit

Permalink
feat: add precheck if any test exists
Browse files Browse the repository at this point in the history
  • Loading branch information
simontaurus authored Dec 16, 2023
1 parent 5e27781 commit c96592f
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions .github/workflows/redirect_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
workflow_dispatch:
inputs:
search_path:
description: "Subpath to test, e.g. '/osw' ('/*' = all subpaths)"
description: "Subpath(s) to test, e.g. '/osw;/emmo;/pmd' ('/*' = all subpaths)"
default: '/*'
pull_request:

Expand All @@ -17,13 +17,21 @@ jobs:
with:
fetch-depth: 0

- name: Check if at least one test exists
id: precheck
continue-on-error: true # if 'false' the whole workflow will fail if no test was defined
run: find $(IFS=';' read -ra paths <<< "${{ github.event.inputs.search_path }}"; for path in "${paths[@]}"; do echo ".$path "; done) -type f -name ".htaccess" -print0 | xargs -0 grep "##TEST"

- name: Run apache docker
run: docker run -dit --name apache -e SEARCH_PATH=${{ github.event.inputs.search_path }} -v "$PWD":/usr/local/apache2/htdocs/ -v "$PWD"/.test/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd:2.4
if: steps.precheck.outcome == 'success'
run: docker run -dit --name apache -e SEARCH_PATH="${{ github.event.inputs.search_path }}" -v "$PWD":/usr/local/apache2/htdocs/ -v "$PWD"/.test/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd:2.4

- name: Install curl
if: steps.precheck.outcome == 'success'
run: docker exec -i apache sh -c "apt-get update && apt-get install curl"

- name: Run tests
if: steps.precheck.outcome == 'success'
run: docker exec -i apache bash < .test/test.sh

pull_request_test:
Expand Down Expand Up @@ -52,12 +60,20 @@ jobs:
done
echo "SEARCH_PATH=$paths" >> $GITHUB_ENV
echo "set SEARCH_PATH to $SEARCH_PATH"
- name: Check if at least one test exists
id: precheck
continue-on-error: true # if 'false' the whole workflow will fail if no test was defined
run: find $(IFS=';' read -ra paths <<< "$SEARCH_PATH"; for path in "${paths[@]}"; do echo ".$path "; done) -type f -name ".htaccess" -print0 | xargs -0 grep "##TEST"

- name: Run apache docker
if: steps.precheck.outcome == 'success'
run: docker run -dit --name apache -e SEARCH_PATH="$SEARCH_PATH" -v "$PWD":/usr/local/apache2/htdocs/ -v "$PWD"/.test/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf httpd:2.4

- name: Install curl
if: steps.precheck.outcome == 'success'
run: docker exec -i apache sh -c "apt-get update && apt-get install curl"

- name: Run tests
if: steps.precheck.outcome == 'success'
run: docker exec -i apache bash < .test/test.sh

0 comments on commit c96592f

Please sign in to comment.