From 0d8bc04d726e389caf094fb0d273b12447683558 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sat, 2 Sep 2023 16:21:10 +0200 Subject: [PATCH] tests: support example workflows expected to fail --- .forgejo/workflows/integration.yml | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/integration.yml b/.forgejo/workflows/integration.yml index e2df475..a92b89b 100644 --- a/.forgejo/workflows/integration.yml +++ b/.forgejo/workflows/integration.yml @@ -3,11 +3,18 @@ on: [ push, pull_request ] env: # # List of tests to run as found in testdata/example-$test. The - # directory will be used to create a git repository, uploaded to a - # Forgejo instance. The test will be a success once the status of + # directory will be used to create a git repository uploaded to a + # Forgejo instance. + # + # The test will be a success once the status of # the commit is success, as set by the Forgejo Action run. # - TESTS: 'echo service container expression local-action docker-action' + TESTS: 'echo service container expression local-action docker-action if' + # + # The test is expected to fail the workflow and verify the expected + # side effect of the failure with testdata/example-$test/expected-to-fail.sh + # + TESTS_FAILING: 'if-fail' jobs: integration: @@ -28,7 +35,8 @@ jobs: # ./forgejo-runner.sh setup export FORGEJO_RUNNER_LOGS=forgejo-runner.log - for example in $TESTS ; do + + for example in $TESTS $TESTS_FAILING ; do if test $example = service ; then > /srv/example-service-volume-valid @@ -41,7 +49,13 @@ jobs: fi echo "============================ BEGIN example-$example ===================" - ./forgejo-test-helper.sh run_workflow testdata/example-$example http://root:admin1234@$(cat forgejo-ip):3000 root example-$example setup-forgejo $(cat forgejo-token) + if ./forgejo-test-helper.sh run_workflow testdata/example-$example http://root:admin1234@$(cat forgejo-ip):3000 root example-$example setup-forgejo $(cat forgejo-token) >& /tmp/run.out ; then + cat /tmp/run.out + ! test -f testdata/example-$example/expected-to-fail.sh + else + cat /tmp/run.out + test -f testdata/example-$example/expected-to-fail.sh + fi echo "============================ END example-$example ===================" if test -f $config ; then