summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/testsuite.yml90
1 files changed, 78 insertions, 12 deletions
diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml
index 26ab5c4958..f57f6a3aa0 100644
--- a/.github/workflows/testsuite.yml
+++ b/.github/workflows/testsuite.yml
@@ -12,6 +12,18 @@
# in 'Settings' -> 'Secrets' -> 'Actions' -> 'Repository Secrets':
# - EXTENDED_TESTING: when this secret exists and is set to a true value then
# all build configurations are tested;
+# - CI_SKIP_SANITY: if set to a true value then most of the 'Sanity Check' job is skipped;
+# - CI_FORCE_LINUX: if set to a true value: run the 'linux' job;
+# - CI_FORCE_LINUX_I386: if set to a true value: run the 'linux-i386' job;
+# - CI_FORCE_INSTALL: if set to a true value: run the 'install' job;
+# - CI_FORCE_MACOS: if set to a true value: run the 'smoke-macos-catalina-xcode12' job;
+# - CI_FORCE_MSVC142: if set to a true value: run the 'windows-msvc142' job;
+# - CI_FORCE_MINGW64: if set to a true value: run the 'mingw64' job;
+# - CI_FORCE_CYGWIN: if set to a true value: run the 'cygwin' job;
+# - CI_FORCE_MINITEST: if set to a true value: run the 'miniperl' job;
+# - CI_FORCE_ASAN: if set to a true value: run the 'ASAN' job;
+# - CI_FORCE_PERL_UNICODE: if set to a true value: run the 'PERL_UNICODE' job;
+# - CI_FORCE_DIST_MODULES: if set to a true value: run the 'dist-modules' job;
#
# For the purpose of this workflow:
# - 'true value': any value that is not false
@@ -28,6 +40,12 @@
# something that is unlikely to occur in the job(/build/test) output
# (for example: '111111111111111111', 'Rumpelstiltskin', ...).
#
+# Example: if you only want to run tests on cygwin then you can set:
+# - EXTENDED_TESTING=00000000000000000000000000000000000000
+# - CI_SKIP_SANITY=1111111111111111111111111111111111111111
+# - CI_FORCE_CYGWIN=111111111111111111111111111111111111111
+# - (and all other CI_FORCE_... secrets to 0000000000000000)
+#
name: testsuite
@@ -114,36 +132,84 @@ jobs:
outputs:
run_all_jobs: ${{ steps.check_extended_testing.outputs.run_all_jobs }}
+ ci_force_linux: ${{ steps.ci_config.outputs.ci_force_linux }}
+ ci_force_linux_i386: ${{ steps.ci_config.outputs.ci_force_linux_i386 }}
+ ci_force_install: ${{ steps.ci_config.outputs.ci_force_install }}
+ ci_force_macos: ${{ steps.ci_config.outputs.ci_force_macos }}
+ ci_force_msvc142: ${{ steps.ci_config.outputs.ci_force_msvc142 }}
+ ci_force_mingw64: ${{ steps.ci_config.outputs.ci_force_mingw64 }}
+ ci_force_cygwin: ${{ steps.ci_config.outputs.ci_force_cygwin }}
+ ci_force_minitest: ${{ steps.ci_config.outputs.ci_force_minitest }}
+ ci_force_asan: ${{ steps.ci_config.outputs.ci_force_asan }}
+ ci_force_perl_unicode: ${{ steps.ci_config.outputs.ci_force_perl_unicode }}
+ ci_force_dist_modules: ${{ steps.ci_config.outputs.ci_force_dist_modules }}
steps:
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
+ - name: Check what-to-do
+ id: ci_config
+ env:
+ CI_SKIP_SANITY: ${{ secrets.CI_SKIP_SANITY }}
+ CI_FORCE_LINUX: ${{ secrets.CI_FORCE_LINUX }}
+ CI_FORCE_LINUX_I386: ${{ secrets.CI_FORCE_LINUX_I386 }}
+ CI_FORCE_INSTALL: ${{ secrets.CI_FORCE_INSTALL }}
+ CI_FORCE_MACOS: ${{ secrets.CI_FORCE_MACOS }}
+ CI_FORCE_MSVC142: ${{ secrets.CI_FORCE_MSVC142 }}
+ CI_FORCE_MINGW64: ${{ secrets.CI_FORCE_MINGW64 }}
+ CI_FORCE_CYGWIN: ${{ secrets.CI_FORCE_CYGWIN }}
+ CI_FORCE_MINITEST: ${{ secrets.CI_FORCE_MINITEST }}
+ CI_FORCE_ASAN: ${{ secrets.CI_FORCE_ASAN }}
+ CI_FORCE_PERL_UNICODE: ${{ secrets.CI_FORCE_PERL_UNICODE }}
+ CI_FORCE_DIST_MODULES: ${{ secrets.CI_FORCE_DIST_MODULES }}
+ run: |
+ echo '::echo::on'
+ [[ -n "${CI_SKIP_SANITY}" ]] && [[ "${CI_SKIP_SANITY%[!0 ]*}" != "${CI_SKIP_SANITY}" ]] && echo "::set-output name=ci_skip_sanity::true"
+ [[ -n "${CI_FORCE_LINUX}" ]] && [[ "${CI_FORCE_LINUX%[!0 ]*}" != "${CI_FORCE_LINUX}" ]] && echo "::set-output name=ci_force_linux::true"
+ [[ -n "${CI_FORCE_LINUX_I386}" ]] && [[ "${CI_FORCE_LINUX_I386%[!0 ]*}" != "${CI_FORCE_LINUX_I386}" ]] && echo "::set-output name=ci_force_linux_i386::true"
+ [[ -n "${CI_FORCE_INSTALL}" ]] && [[ "${CI_FORCE_INSTALL%[!0 ]*}" != "${CI_FORCE_INSTALL}" ]] && echo "::set-output name=ci_force_install::true"
+ [[ -n "${CI_FORCE_MACOS}" ]] && [[ "${CI_FORCE_MACOS%[!0 ]*}" != "${CI_FORCE_MACOS}" ]] && echo "::set-output name=ci_force_macos::true"
+ [[ -n "${CI_FORCE_MSVC142}" ]] && [[ "${CI_FORCE_MSVC142%[!0 ]*}" != "${CI_FORCE_MSVC142}" ]] && echo "::set-output name=ci_force_msvc142::true"
+ [[ -n "${CI_FORCE_MINGW64}" ]] && [[ "${CI_FORCE_MINGW64%[!0 ]*}" != "${CI_FORCE_MINGW64}" ]] && echo "::set-output name=ci_force_mingw64::true"
+ [[ -n "${CI_FORCE_CYGWIN}" ]] && [[ "${CI_FORCE_CYGWIN%[!0 ]*}" != "${CI_FORCE_CYGWIN}" ]] && echo "::set-output name=ci_force_cygwin::true"
+ [[ -n "${CI_FORCE_MINITEST}" ]] && [[ "${CI_FORCE_MINITEST%[!0 ]*}" != "${CI_FORCE_MINITEST}" ]] && echo "::set-output name=ci_force_minitest::true"
+ [[ -n "${CI_FORCE_ASAN}" ]] && [[ "${CI_FORCE_ASAN%[!0 ]*}" != "${CI_FORCE_ASAN}" ]] && echo "::set-output name=ci_force_asan::true"
+ [[ -n "${CI_FORCE_PERL_UNICODE}" ]] && [[ "${CI_FORCE_PERL_UNICODE%[!0 ]*}" != "${CI_FORCE_PERL_UNICODE}" ]] && echo "::set-output name=ci_force_perl_unicode::true"
+ [[ -n "${CI_FORCE_DIST_MODULES}" ]] && [[ "${CI_FORCE_DIST_MODULES%[!0 ]*}" != "${CI_FORCE_DIST_MODULES}" ]] && echo "::set-output name=ci_force_dist_modules::true"
+ echo '::echo::off'
- name: Install System dependencies
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
run: |
sudo apt-get update
sudo apt-get install -y libgdbm-dev libdb-dev
- uses: actions/checkout@v2
with:
fetch-depth: 0
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
- name: git cfg
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
run: |
git config diff.renameLimit 999999
- name: Configure
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
run: |
./Configure -des -Dusedevel ${CONFIGURE_ARGS} -Dprefix="$HOME/perl-blead"
env:
CONFIGURE_ARGS: "-Dusethreads"
- name: Build
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
id: build
run: |
make -j2 test_prep
- name: Show Config
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
run: |
./perl -Ilib -V
./perl -Ilib -e 'use Config; print Config::config_sh'
- name: Run Tests (excluding t/porting)
+ if: steps.ci_config.outputs.ci_skip_sanity != 'true'
run: |
TEST_JOBS=2 ./perl t/harness -nre='^porting/'
@@ -166,7 +232,7 @@ jobs:
fi
- name: Run Porting Tests (t/porting)
- if: (! cancelled() && steps.build.outcome == 'success')
+ if: (! cancelled() && steps.ci_config.outputs.ci_skip_sanity != 'true' && steps.build.outcome == 'success')
run: |
TEST_JOBS=2 ./perl t/harness -re='^porting/'
@@ -179,7 +245,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_linux == 'true'))
strategy:
fail-fast: false
@@ -235,7 +301,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_linux_i386 == 'true'))
# https://hub.docker.com/r/i386/ubuntu/
container:
@@ -293,7 +359,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_install == 'true'))
steps:
- name: Install System dependencies
@@ -342,7 +408,7 @@ jobs:
runs-on: macos-11
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_macos == 'true'))
strategy:
fail-fast: false
@@ -377,7 +443,7 @@ jobs:
runs-on: windows-2019
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_msvc142 == 'true'))
steps:
- run: git config --global core.autocrlf false
@@ -433,7 +499,7 @@ jobs:
runs-on: windows-2019
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_mingw64 == 'true'))
steps:
- run: git config --global core.autocrlf false
@@ -483,7 +549,7 @@ jobs:
runs-on: windows-2019
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_cygwin == 'true'))
steps:
# we use Cygwin git, so no need to configure git here.
@@ -568,7 +634,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_minitest == 'true'))
outputs:
run_all_jobs: ${{ steps.check_extended_testing.outputs.run_all_jobs }}
@@ -616,7 +682,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_asan == 'true'))
strategy:
matrix:
@@ -666,7 +732,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: sanity_check
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_perl_unicode == 'true'))
strategy:
matrix:
@@ -712,7 +778,7 @@ jobs:
name: dist-modules
needs: sanity_check
runs-on: ubuntu-latest
- if: (! cancelled() && needs.sanity_check.outputs.run_all_jobs == 'true')
+ if: (! cancelled() && (needs.sanity_check.outputs.run_all_jobs == 'true' || needs.sanity_check.outputs.ci_force_dist_modules == 'true'))
env:
# some plugins still needs this to run their tests...