Skip to content

Commit

Permalink
GitHub Action: upload cpanm logs
Browse files Browse the repository at this point in the history
  • Loading branch information
rjbs committed Jun 3, 2024
1 parent 3776ae0 commit 04bc435
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 24 deletions.
27 changes: 21 additions & 6 deletions .github/workflows/multiperl-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,30 @@ jobs:
chmod u+x /tmp/cpanm
- name: Install Dist::Zilla
run: sudo apt-get install -y libdist-zilla-perl
- name: Install prereqs
# This could probably be made more efficient by looking at what it's
# installing via cpanm that could, instead, be installed from apt. I
# may do that later, but for now, it's fine! -- rjbs, 2023-01-07
- name: Install authordeps
run: |
dzil authordeps --missing > /tmp/deps-phase-1.txt
dzil authordeps --missing | grep -v Dist::Zilla::Plugin::CPANFile > /tmp/deps-phase-1.txt
echo "---BEGIN AUTHORDEPS---"
cat /tmp/deps-phase-1.txt
echo "---END AUTHORDEPS---"
/tmp/cpanm --notest -S < /tmp/deps-phase-1.txt
dzil listdeps --author --missing >> /tmp/deps-phase-2.txt
- name: Upload cpanm logs for authordeps
uses: actions/upload-artifact@v4
with:
name: cpanm-authordeps.log
path: ~/.cpanm/build.log
- name: Install missing prereqs
run: |
dzil listdeps --author --missing > /tmp/deps-phase-2.txt
echo "---BEGIN PREREQS---"
cat /tmp/deps-phase-2.txt
echo "---END PREREQS---"
/tmp/cpanm --notest -S < /tmp/deps-phase-2.txt
- name: Upload cpanm logs for prereqs
uses: actions/upload-artifact@v4
with:
name: cpanm-prereqs.log
path: ~/.cpanm/build.log
- name: Build tarball
run: |
dzil build --in Dist-To-Test
Expand Down
50 changes: 32 additions & 18 deletions lib/Dist/Zilla/Util/AuthorDeps.pm
Original file line number Diff line number Diff line change
Expand Up @@ -107,24 +107,38 @@ sub extract_author_deps {
if ($missing) {
require Module::Runtime;

@packages =
grep {
$_ eq 'perl'
? ! ($vermap->{perl} && eval "use $vermap->{perl}; 1")
: do {
my $m = $_;
! eval {
local @INC = @INC; push @INC, "$root";
# This will die if module is missing
Module::Runtime::require_module($m);
my $v = $vermap->{$m};
# This will die if VERSION is too low
!$v || $m->VERSION($v);
# Success!
1
}
}
} @packages;
my @new_packages;
PACKAGE: for my $package (@packages) {
if ($package eq 'perl') {
# This is weird, perl can never really be a prereq to fulfill but...
# it was like this. -- rjbs, 2024-06-02
if ($vermap->{perl} && ! eval "use $vermap->{perl}; 1") {
push @new_packages, 'perl';
}

next PACKAGE;
}

my $ok = eval {
local @INC = (@INC, "$root");

# This will die if module is missing
Module::Runtime::require_module($package);
my $v = $vermap->{$package};

# This will die if VERSION is too low
!$v || $package->VERSION($v);

# Success!
1;
};

unless ($ok) {
push @new_packages, $package;
}
}

@packages = @new_packages;
}

# Now that we have a sorted list of packages, use that to build an array of
Expand Down

0 comments on commit 04bc435

Please sign in to comment.