From dbe3ef4a2c59c4c5b22d4347281ab63eb5726f5b Mon Sep 17 00:00:00 2001 From: Julien Fiegehenn Date: Sat, 1 Oct 2022 13:12:33 +0100 Subject: [PATCH] add support for Module::Build #6 --- .gitignore | 5 +++ bin/build-dist | 11 +++++++ t/module_build_module.bats | 31 +++++++++++++++++++ t/test-data/module-build_module/Build.PL | 5 +++ .../module-build_module/lib/Acme/Helpers.pm | 14 +++++++++ t/test-data/module-build_module/t/load.t | 9 ++++++ t/test-data/module-build_module/xt/load.t | 9 ++++++ 7 files changed, 84 insertions(+) create mode 100755 t/module_build_module.bats create mode 100644 t/test-data/module-build_module/Build.PL create mode 100644 t/test-data/module-build_module/lib/Acme/Helpers.pm create mode 100644 t/test-data/module-build_module/t/load.t create mode 100644 t/test-data/module-build_module/xt/load.t diff --git a/.gitignore b/.gitignore index 69f5411..8aa8467 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ /t/test-data/dzil_module/build_dir +/t/test-data/module-build_module/_build +/t/test-data/module-build_module/build_dir +/t/test-data/module-build_module/MANIFEST* +/t/test-data/module-build_module/Build + diff --git a/bin/build-dist b/bin/build-dist index cfc81d4..a31f2d6 100755 --- a/bin/build-dist +++ b/bin/build-dist @@ -15,6 +15,17 @@ elif [[ -e minil.toml ]]; then # shellcheck disable=SC2012 DIR=$(ls -td -- */ | head -n 1 | cut -d'/' -f1) mv "$DIR" build_dir +elif [[ -e Build.PL ]]; then + rm -rf "$BUILD_DIR" + perl Build.PL + ./Build clean + ./Build manifest + ./Build distdir + + # Module::Build does not support a build directory, so we have to find + # the last created dir and use that. + DIR="$(perl -MModule::Build -e'print Module::Build->resume->dist_dir;')" + mv "$DIR" $BUILD_DIR fi exit 0 diff --git a/t/module_build_module.bats b/t/module_build_module.bats new file mode 100755 index 0000000..979751c --- /dev/null +++ b/t/module_build_module.bats @@ -0,0 +1,31 @@ +#!/usr/bin/env bats + +PATH="$PATH:../../../bin" + +setup() { + cd t/test-data/module-build_module +} + +@test "Build.PL cpan-install-dist-deps" { + run cpan-install-build-deps + [ "$status" -eq 0 ] +} + +@test "Build.PL build-dist" { + run build-dist + [ "$status" -eq 0 ] +} + +@test "Build.PL test-dist" { + run cd build_dir && test-dist + [ "$status" -eq 0 ] +} + +@test "Build.PL auto-build-and-test-dist" { + GITHUB_ACTIONS=${GITHUB_ACTIONS:=''} + if [[ $GITHUB_ACTIONS=true ]]; then + skip "Tricky to test under CI" + fi + run rm -rf build_dir && bash auto-build-and-test-dist && rm -rf build_dir + [ "$status" -eq 0 ] +} diff --git a/t/test-data/module-build_module/Build.PL b/t/test-data/module-build_module/Build.PL new file mode 100644 index 0000000..693f79d --- /dev/null +++ b/t/test-data/module-build_module/Build.PL @@ -0,0 +1,5 @@ +use Module::Build; +Module::Build->new( + module_name => 'Acme::Helpers', + license => 'perl', +)->create_build_script; \ No newline at end of file diff --git a/t/test-data/module-build_module/lib/Acme/Helpers.pm b/t/test-data/module-build_module/lib/Acme/Helpers.pm new file mode 100644 index 0000000..60e9b18 --- /dev/null +++ b/t/test-data/module-build_module/lib/Acme/Helpers.pm @@ -0,0 +1,14 @@ +package Acme::Helpers; + +use strict; +use warnings; + +our $VERSION = '0.01'; + +sub true { + return 1; +} + +1; + +# ABSTRACT: turns baubles into trinkets diff --git a/t/test-data/module-build_module/t/load.t b/t/test-data/module-build_module/t/load.t new file mode 100644 index 0000000..46c97d1 --- /dev/null +++ b/t/test-data/module-build_module/t/load.t @@ -0,0 +1,9 @@ +use strict; +use warnings; + +use Test::More; + +use Acme::Helpers (); +ok( Acme::Helpers::true() ); + +done_testing(); diff --git a/t/test-data/module-build_module/xt/load.t b/t/test-data/module-build_module/xt/load.t new file mode 100644 index 0000000..46c97d1 --- /dev/null +++ b/t/test-data/module-build_module/xt/load.t @@ -0,0 +1,9 @@ +use strict; +use warnings; + +use Test::More; + +use Acme::Helpers (); +ok( Acme::Helpers::true() ); + +done_testing();