summaryrefslogtreecommitdiff
path: root/.github
Commit message (Collapse)AuthorAgeFilesLines
...
* A CI test that manicheck has no errors after `git clean -dxf`Nicholas Clark2021-10-121-0/+6
|
* Add CI tests for `make distclean` and Porting/manicheckNicholas Clark2021-10-121-0/+7
|
* Test ASAN with -DDEBUGGING (and so also with assertions enabled)Nicholas Clark2021-09-261-1/+2
| | | | | Make it clear in the earlier comment about -DDEBUGGING that it was referencing the "linux" job, not the entire file.
* Test a macOS threaded shared-library build tooNicholas Clark2021-09-261-1/+8
|
* Test clang's ASAN as well as gcc's ASANNicholas Clark2021-09-261-1/+1
| | | | | | | | | | | | | | On the GH virtual machine, gcc's ASAN appears to be slightly buggy, as the `-Accflags=-DPURIFY` job is causing cpan/File-Path/t/Path.t to reliably SEGV after passing all 167 subtests: Tracer caught signal 11: addr=0x0 pc=0x7ff95dfaa8b0 sp=0x7ff95a2a6ce0 LeakSanitizer has encountered a fatal error. I can't replicate this on machines I have access to, which makes it rather hard to debug. Hence side-step the issue by running this test with clang instead, so that we also test with clang's ASAN implementation. We still test with gcc's ASAN in one of the PERL_UNICODE jobs.
* Run t/TEST directly on cygwin in the CI workflowNicholas Clark2021-09-261-2/+13
| | | | | | | | | | | | `make -j2 test` causes make to re-run the build in all the extension directories, which takes about 40 seconds on the GH servers - ie this alone is roughly 1% of the total test time. Hence change the build target to `test_prep`, the Makefile pre-requisite for testing, and then run t/TEST.pl directly with the same environment as the Makefile and ./runtests would have set up. As we already set PERL_SKIP_TTY_TEST=1 in the global environment we don't have anything else to set up.
* Change all LD_LIBRARY_PATH setup from '.' to `pwd`Nicholas Clark2021-09-261-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | The previous commit added various new lines that set LD_LIBRARY_PATH=`pwd`, whereas the existing lines that set LD_LIBRARY_PATH set it to '.'. LD_LIBRARY_PATH needs to be set to the build directory to run an uninstalled perl binary *if* that binary is built with a shared perl library. It's not needed for the default configuration, but to simplify the test definitions we were doing it always. In turn, LD_LIBRARY_PATH doesn't need to be set to an *absolute* path if all that is invoked is the perl binary - it doesn't change directory, and it does shell out to itself, hence setting LD_LIBRARY_PATH=. is just fine here. Running the regression tests *does* involve changing directory before invoking perl, so LD_LIBRARY_PATH needs to be set to an absolute path there. Running `./perl -Ilib -V` doesn't change directory (or shell out) so '.' was good enough. There's no real harm in also invoking `pwd` to get an absolute path here, so do this instead of just coding '.', as the consistency makes the workflow easier to read - you don't get distracted wondering "Why are these different, and is that a bug?"
* Run `./perl t/harness` directly in the CI workflowNicholas Clark2021-09-261-10/+16
| | | | | | | | | | | | | `make -j2 test_harness` causes make to re-run the build in all the extension directories, which can take 20 seconds even on fast server hardware. Hence change the build target to `test_prep`, the Makefile pre-requisite for testing, and then run t/harness directly with the same environment as the Makefile and ./runtests would have set up. As we already set PERL_SKIP_TTY_TEST=1 in the global environment we don't have anything else to set up. Keep the 'linux-i386' and 'install' jobs on the regular `test` and `test_harness` targets to ensure we still cover them.
* Test `make install` in the GH workflowNicholas Clark2021-09-261-1/+42
|
* The CI workflow needs some test builds without -DDEBUGGINGNicholas Clark2021-09-261-2/+6
|
* PERL_UNICODE= and LANG= can't be set as Configure argumentsNicholas Clark2021-09-261-2/+2
| | | | | | | | | | | | | | | | | | The intent is to test with non-C locales and non-default Unicode handling, but to do this the values need to be set as environment variables for the test (and build - occasionally bugs are not exposed by the testsuite). Configure happily accepts anything on the command line, and records all its command line arguments in config.sh (and hence also within %Config::Config). But nothing acts on them. It's easier to set these in a separate workflow job (and test only a couple) rather than creating a second environment matrix in this job, and hence test $m * $n combinations. Unfortunately the GH test machines only have the locales C, C.UTF-8, POSIX and en_US.utf8, so we can't easily test anything more "interesting" than en_US.utf8.
* CI tests for PERL_UNICODE="" with a UTF-8 localeNicholas Clark2021-09-261-0/+48
|
* In the Linux workflows use MALLOC_PERTURB_ and MALLOC_CHECK_Nicholas Clark2021-09-261-4/+4
| | | | | | | | | | | | | | | | MALLOC_CHECK_=3 causes glibc to abort if it detects malloc errors. Specifically, 3 will be "Print detailed error message, stack trace, and memory mappings, and abort the program." MALLOC_PERTURB_=254 will cause newly allocated memory to be set to non-zero values, and freed memory to be set to the given non-zero value. See `man mallopt` Intentionally only setting these for the build and test steps, but not the Configure step, to see if we can later expose bugs caused by bad probes. If we set it for Configure, the abort this triggers might simply cause a probe to be silently failed, and we could miss problems.
* Test ASAN builds with and without -DPURIFYNicholas Clark2021-09-261-3/+4
| | | | | Also we can fail-fast on ASAN to save some resources. Likely if one ASAN build fails, the others won't tell us about different problems.
* Workflows should `make test_harness` to get parallel testingNicholas Clark2021-09-261-5/+8
| | | | | | `make test` uses t/TEST which always runs tests sequentially. TEST_JOBS only makes sense with t/harness, which is run by the `test_harness` target.
* All workflow jobs use the same env: so move it to the top levelNicholas Clark2021-09-261-40/+4
| | | | | Also nothing references $ENV{WORKSPACE} so no need to set this. Documentation for actions/checkout implies that it is reading from $GITHUB_WORKSPACE.
* A prototype CI job to build with Address SanitizerNicholas Clark2021-09-261-0/+50
| | | | | Whilst this *will* detect various dangerous mistakes involving bad memory accesses, it's far more likely to spot if changes create memory leaks.
* Add a CI job to confirm that minitest keeps passingNicholas Clark2021-09-261-0/+47
| | | | | | | | Currently minitest passes - let's keep it that way. minitest might feel like makework, until one makes a seemingly innocent change that breaks the build in "inconceivable" ways and it's no longer even possible to get to the point of being able to run `make test`.
* Add "missing" descriptions to testsuite.ymlNicholas Clark2021-09-261-3/+17
| | | | If it's worth doing, it's worth overdoing.
* Add a "Show Config" step to the GitHub CI config.Nicholas Clark2021-06-231-0/+31
| | | | Hopefully this will make it easier to figure out the cause of test failures.
* Change the "New issue" page to point to the RFC process.Nicholas Clark2021-06-232-13/+3
|
* The previous commit wasn't meant to be pushedTomasz Konojacki2021-05-301-3/+330
| | | | This reverts commit e9f285aca6c125ef50e64ed9b85265c9896b7b39.
* sshTomasz Konojacki2021-05-301-330/+3
|
* remove MSVC100/vcexpress2010 from CI, at least for nowTony Cook2021-05-271-44/+0
| | | | | | | | | | | Due to failing installation of VC express 2010, that version isn't being tested anyway, and is just producing errors. If we work out a solution for the missing download from Microsoft we can reinstate it, but at this point it's just noise reducing the utility CI gives us. This does not make VC2010 unsupported, it's purely a CI change.
* testsuite.yml: set CCHOME during 'make'Tomasz Konojacki2021-03-081-3/+2
| | | | | | | | CCHOME is needed to set $Config{libpth} correctly. The latest version of Win32 (which I'm about to import from CPAN) is linking with a library that isn't listed in $Config{libs} and because of that it needs $Config{libpth} to be valid.
* Update the Xcode version in the testsuite.yml workflowJae Bradley2020-12-081-2/+2
| | | Xcode v12 is now the default Xcode version: https://github.com/actions/virtual-environments/issues/2056
* Use macOS-10.15 explicitlyJae Bradley2020-12-081-1/+1
|
* Explicitly use Catalina when running the test with Xcode 11Jae Bradley2020-12-081-3/+3
|
* Limit the number of lines in IRC notificationNicolas R2020-11-171-17/+53
|
* irc-notifications: use GITHUB_ENVNicolas R2020-11-171-2/+1
| | | | | | GH #18329 ::set-env is deprecated use GITHUB_ENV instead
* remove deprecated GitHub Actions Command and some improvementsIchinose Shogo2020-10-131-11/+26
| | | | | | | | | | | Don't use add-path GitHub Action Command The `add-path` command is deprecated. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/ * bump up actions/checkout@v1 * enable cache of GitHub Actions * don't use pre-installed git on cygwin * split lines for readability
* Custom timeout to detect conflictsNicolas R2020-10-061-2/+5
| | | | | | | | | Give more time to the action detecting merge conflicts. To detect conflicts we rely on the `mergeable` state from GitHub API. GitHub uses an async job to compute this state. We have no other way than patience before being able to detect a conflict.
* Sleep before running auto-label-merge-conflictsNicolas R2020-10-011-0/+2
| | | | | | | | | Alternatively we could retry on errors. This is a known limitation as we use the mergeable status which is computed async by GitHub. Upstream-URL: https://github.com/mschilde/auto-label-merge-conflicts/issues/37
* IRC notifications for opened and synchronize PRNicolas R2020-09-011-4/+18
| | | | | This is using a different wording for opened or synchronize pull requests.
* Tweak IRC Notifications to #p5p-commitsNicolas R2020-08-171-9/+18
|
* Fix github action testing of pull requests on cygwinJohn Lightsey2020-08-011-1/+1
| | | | | | The GITHUB_REF head on the remote doesn't reliably contain GITHUB_SHA when testing pull requests. These PR merge SHAs are likely transient. Checkout whatever the fetch retrieved from GITHUB_REF instead.
* Switch EXTENDED_TESTING logic to avoid failure notifications.John Lightsey2020-07-311-25/+25
| | | | | | This sets a variable to skip or run jobs in the github workflow rather using a workflow failure to stop early. Failing the workflow sends unnecessary notifications.
* split IRC notification between blead changes and non blead changes☢ ℕicolas ℝ2020-07-311-5/+4
|
* Use GitHub action to send IRC notifications☢ ℕicolas ℝ2020-07-311-0/+77
| | | | | | | | This is a first iteration advertising to #p5p-commits. The action for 'inBlead' needs to be altered. Once stable, I would also port the existing bot to this workflow so anyone can tweak/adjust it.
* Try using hasConflicts tag Nicolas R2020-07-311-3/+3
| | | The action cannot find the tag using a space.
* Automatically tags Pull Requests with conflicts☢ ℕicolas ℝ2020-07-301-0/+13
| | | | | The goal is too quickly identify the pending pull requests with conflicts.
* Remove PERL_GLOBAL_STRUCTDagfinn Ilmari Mannsåker2020-07-201-1/+0
| | | | | | | | This was originally added for MinGW, which no longer needs it, and only still used by Symbian, which is now removed. This also leaves perlapi.[ch] empty, but we keep the header for CPAN backwards compatibility.
* Tweak check_extended_testing jobNicolas R2020-06-021-7/+7
|
* Ajust authors logicNicolas R2020-06-021-4/+10
|
* Set CONFIGURE_ARGS env correctly for sanity checkNicolas R2020-06-021-3/+7
| | | | also add a debug statement for viewing GitHub context
* Merge smoke informations to testsuite workflowNicolas R2020-06-022-32/+38
| | | | | | | | Smoke informations should belong to the testsuite and only display when run on the main repo. Note: moved the 'if' condition in the run as a 'if:' check, avoiding to start a VM when not needed.
* Only smoke extra flavors when EXTENDED_TESTING=1Nicolas R2020-06-021-7/+31
| | | | | | This is avoiding using too much resources on fork repositories. fixup
* Run a sanity check before running all jobsNicolas R2020-06-021-1/+37
| | | | | | | | | | | Abort earlier if we cannot compile a simple configuration on linux. This is avoiding wasting resources and will come back earlier on errors. Note that this is adding the time of an extra runtime job as we are waiting for the sanity_check workflow before starting any other jobs.
* Merge all workflows as a single testsuite workflowNicolas R2020-06-028-334/+297
| | | | | | The existing smoke-* workflows are part of the testsuite. By merging them together we can link them and add some conditions to reduce resources usages.
* Issue template - Suggest putting perl configuration in fenced code blockDan Book2020-05-291-0/+2
|