- Same as 0.3.0, but the Docker image creation for that tag failed. This release fixes that.
- Images are now stored in the GitHub Container registry rather than Docker Hub.
- Fixed a bug in the templates where they would always attempt to call
./dev-bin/install-xt-tools.sh
even if it didn't exist.
- All Azure VMs now use Ubuntu 20.04 instead of 18.04.
- Fix an issue with generating the test matrix that seems to have popped up recently. The system
perl used to be able to fetch
https
URLs, presumably because it hadIO::Socket::SSL
available, but this appears to no longer be the case.
- The base image for all Docker images is now Ubuntu 20.04 instead of 18.04.
-
Fixed package installs under Linux. The helpers now run
apt-get update
before attempting toapt-get install
anything. -
Removed the Kritika coverage option. This service appears to be defunct.
- Make sure the test_xt parameter is passed through to all relevant templates, and make it default to false.
- The last release accidentally disabled running tests except for jobs where
test_xt
was true.
- If the distro name starts with "Dist-Zilla", then the distro's lib dir will be included in
@INC
(viadzil -I lib
) when running `dzil build.
- If a distro has a script named
dev-bin/install-xt-tools.sh
we now run this before running xt tests.
- Fixed a bug where we could not figure out what Docker image version to use. The method we used to use stopped working at some point, so I had to find a new creative way to find the corresponding branch in a detached git checkout.
- Fixed a bug that caused macOS builds to fail semi-randomly (after the first build). The issue is that the macOS workspace directory can change between runs. We were caching & restoring directory trees under this workspace directory, so if the cache restore put the restored tree in the wrong workspace directory, failures ensured. I reported this MS via their community forum.
- Fixed bugs that prevented testing of dists that used
Module::Build
orExtUtils::MakeMaker
(as opposed toDist::Zilla
).
-
Fix failure to run
curl
with--compressed
flag on Windows. -
Fix issues caused by changes to the default
$PATH
on Windows. See actions/runner-images#211 for what changed. I suspect this PR will be reverted but it doesn't hurt to explicitly add the paths we care about.
- If
test_xt
was true, then all jobs with the most recent stable Perl would run extended tests, including jobs running with coverage enabled. Now only one such job (without coverage or threads) will run these tests.
-
All test templates now accept an
extra_prereqs
parameter. This is list of additional Perl packages to install before running the tests. -
Fix our use of
brew
in the macOS template. We cannot call it withsudo
.
- When generating the test matrix we skip any version of Perl which was released after the commit of this repo that is being used. Otherwise we could ask for a Perl version for which there is no corresponding Docker image.
Old configurations will not work with this release. Please see the README.md for details on how to configure these helpers for your project.
-
The single test stage has been split up into three stages, one for each of Linux, macOS, and Windows.
-
You can easily configure whatever set of Perl versions you want on each OS, though Windows is still limited to Perl versions provided by Berrybrew. In addition, you can now set
test_xt
and coverage parameters for all operating system, not just Linux, -
You can run coverage testing with a Perl version of your choice. By default this will be done with the most recent stable release that you are testing with.
-
All test stages now allow you to specify an arbitrary list of packages to be installed using apt, Brew, or Chocolatey, as appropriate.
-
You can now pass an arbitrary list of steps to be executed both before and after the steps executed by the test stage in the job that runs tests.
- Separated the creation of the coverage report from running tests in the Azure Pipeline steps.
- Pin our berrybrew install to 1.29. The new 1.30 seems to have some issues (see stevieb9/berrybrew#237) and broke all my pipeline builds on Windows. Pinning will let us upgrade on our own schedule.
-
The
image_version
change in the last release was not done properly. It got the branch name from the repo that was using the helpers, not from the helpers themselves. But it did work for tags. -
Fixed an issue where variables set using
##vso
log output would end up being set twice. If the bash code in question did aset -x
, then the log output would come out twice, leading to much confusion.
-
Docker images are now tagged with multiple tags at once. If we push a new commit to master and it's tagged with a version number, we end up with both a "-master" and "-vX.Y.Z" tag.
-
The
image_version
parameter is now optional for all stage templates. If it is not passed then the version will be picked based on the commit that is used for theci-perl-helpers
repo. If the commit matches a version tag, then that is used as theimage_version
. Otherwise the branch name is used.
- In v0.0.8, I changed the naming of the Docker containers and forgot to change it in the templates.
- Fixed Windows builds. These were broken by a change in a recent berrybrew release, but hard-coding a version of Perl to use is pretty sloppy. We now pick the latest available version from berrybrew (which still makes some assumptions about berrybrew that may break in the future).
- Docker images are now created in Azure after each push and tagged appropriately. In addition, images are created for every patch release of Perl starting with 5.12, instead of just the last patch release of the series.
- All of the Docker images now include a tag from this repo, so I can push new images without risk of breaking existing builds.
- Add a title to the published test results. The title is the same as the job's title.
-
When calling
tap2junit
we make sure not to exceed a command length of 5,000 characters. On Windows very long commands fail. Despitegetconf ARG_MAX
in bash on Windows saying that the limit is 32,000, experimentation showed me that the limit is somewhere around 5,000. This fixes testing when you have a very large number of test files. -
Ignore the checksum when installing berrybrew on Windows using chocolatey. This is necessary because of an issue with the install script for berrybrew. See camilohe/berrybrew.install#1 for details. Once that is fixed we will go back to respecting the checksum, but for now this is necessary to keep Windows builds working.
-
Add support for partitioning tests when running coverage tests. Running tests under Devel::Cover can be much slower than normal, and large test suites (for example Moose's) can easily take more than the 1 hour limit per job imposed by Azure. See the
README.md
file for documentation on this feature. -
The raw output from
Devel::Cover
is no longer published as a build artifact automatically. You need to enable this with thepublish_coverage_artifact
parameter. This was done because some test suites output enormous number of files which take a very long time to publish. In addition, coverage artifacts will only be published when the job succeeds (meaning all tests passed). -
The step to publish coverage to codecov.io will now only be run when tests pass.
-
On macOS and Windows the tools are now installed by referencing the repository resource. This guarantees that you get the version of the tools that corresponds to that commit in this repo. The previous method of packing the tools as a base64 blob required a manual step to ensure that the tools were up to date. Fixes #7.
-
Only pass absolute paths to
prove
when running coverage tests (which are only done on Linux). Passing absolute paths causes issues on Windows. -
Fixed breakage introduced in 0.0.4 for Windows builds. The step to run tests would always fail to execute prove. Reported by xenu. Fixes #8.
- Updated the base64 version of the tools (used on macOS and Windows) with changes in the last version.
- When running
prove
we now pass the test dirs as absolute paths. This allows tests to useFindBin
safely (to accesst/lib
for example) even if the current working directory changes before the test code is run. This happens withDevel::Cover
when the-dir
flag is passed to it. See pjcj/Devel--Cover#247 for my issue report about this.
- Added a step to install dynamic prereqs. These prereqs will never be cached, but I'm assuming that most prereqs will be static.
- First release upon an unsuspecting world.