Skip to content

Commit 49bf89e

Browse files
committed
workflows: improve generate dockerfile workflow
- Run under perl:devel container - Run only for changes on selected paths - Install prereqs via cpm - Fail when extra diffs are detected
1 parent 319c7b4 commit 49bf89e

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

Diff for: .github/workflows/generate-dockerfiles-patches.yml

+32-10
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,54 @@ name: Generate Dockerfiles/patches
33
on:
44
push:
55
branches:
6-
- '**'
6+
- master
77
tags-ignore:
88
- '*'
99
pull_request:
10+
paths:
11+
- cpanfile
12+
- config.yml
13+
- generate.pl
14+
- .github/workflows/generate-dockerfiles-patches.yml
1015

1116
jobs:
1217
generate:
1318
runs-on: ubuntu-latest
19+
1420
steps:
21+
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
22+
1523
- name: Set up git user name and email
1624
run: |
1725
git config --global user.email "test@github-actions"
1826
git config --global user.name "GitHub Actions"
19-
- uses: actions/checkout@master
27+
2028
- name: Install system perl and cpanm
2129
run: |
22-
sudo apt-get install --no-install-recommends -y perl cpanminus
30+
sudo apt-get update && sudo apt-get install -y --no-install-recommends perl cpanminus
31+
2332
- name: Install dependencies
2433
run: |
25-
cpanm --quiet --installdeps --notest -L local .
34+
sudo cpanm --quiet --installdeps --notest .
35+
2636
- name: Generate Dockerfiles/patches
37+
id: generate
2738
run: |
28-
perl -Ilocal/lib/perl5 ./generate.pl
29-
- name: Show diffstat (if any)
30-
run: |
31-
git --no-pager diff --stat HEAD
32-
- name: Show diffstat (if any)
39+
export DOCKER_PERL_DOWNLOADS_DIR=/tmp/docker-perl-downloads
40+
perl ./generate.pl
41+
/usr/bin/git --no-pager diff --stat > diffstat.txt
42+
if [[ -s diffstat.txt ]]; then
43+
echo has_extra_diffs=1 >> $GITHUB_OUTPUT
44+
fi
45+
46+
- name: Fail if there are extra diffs
47+
if: steps.generate.outputs.has_extra_diffs
3348
run: |
34-
git --no-pager diff --stat HEAD
49+
echo "::error title=generate::Extra diffs found during generate"
50+
echo "Additional changes found during generate - check diffstat below:"
51+
echo "::group::diffstat"
52+
cat diffstat.txt
53+
echo "::endgroup::"
54+
echo
55+
56+
exit 1

0 commit comments

Comments
 (0)