Skip to content

Commit d3bb08c

Browse files
committed
workflows: build image only on build context changes
Also switch to using docker-buildx, and remove unneeded step.
1 parent 2780e76 commit d3bb08c

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

.github/workflows/build-image.yml

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ name: Build and Test
33
on:
44
push:
55
branches:
6-
- '**'
6+
- master
77
tags-ignore:
88
- '*'
99
pull_request:
10+
paths:
11+
- '**/Dockerfile'
12+
- '**/DevelPatchPerl.patch'
1013

1114
defaults:
1215
run:
@@ -18,46 +21,56 @@ jobs:
1821
runs-on: ubuntu-latest
1922
outputs:
2023
matrix: ${{ steps.generate.outputs.matrix }}
24+
2125
steps:
22-
- uses: actions/checkout@master
26+
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
27+
2328
- id: generate
2429
name: Enumerate Dockerfiles
2530
run: |
2631
matrix="$(dirname */Dockerfile | sort -rn | jq -csR 'rtrimstr("\n") | split("\n") | { directory: . }')"
2732
echo "matrix=$matrix" >> $GITHUB_OUTPUT
33+
2834
build-image:
2935
needs: generate-matrix
3036
runs-on: ubuntu-latest
3137
strategy:
3238
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}
3339
name: ${{ matrix.directory }}
40+
3441
steps:
3542
- uses: actions/checkout@master
43+
3644
- name: Clone docker-library/official-images (for testing)
3745
run: |
3846
git clone --depth 1 --single-branch https://github.com/docker-library/official-images.git
47+
3948
- name: Build image
4049
run: |
4150
docker version
4251
dir='${{ matrix.directory }}'
4352
img="perl:${dir//,/-}"
44-
docker build -t "$img" "$dir"
53+
docker buildx build --progress=plain -t "$img" "$dir"
54+
4555
- name: Inspect image creation and tag time
4656
run: |
4757
dir='${{ matrix.directory }}'
4858
img="perl:${dir//,/-}"
4959
docker image inspect --format '{{.Created}}' "$img"
5060
docker image inspect --format '{{.Metadata.LastTagTime}}' "$img"
61+
5162
- name: Run tests from docker-library/official-images
5263
run: |
5364
dir='${{ matrix.directory }}'
5465
img="perl:${dir//,/-}"
5566
./official-images/test/run.sh "$img"
67+
5668
- name: Run HTTPS access test
5769
run: |
5870
dir='${{ matrix.directory }}'
5971
img="perl:${dir//,/-}"
6072
docker run "$img" perl -MHTTP::Tiny -E 'if (HTTP::Tiny->new->get("https://github.com")->{status} == 200) { exit 0 } exit 1'
73+
6174
- name: Run cpanm install test
6275
run: |
6376
dir='${{ matrix.directory }}'
@@ -67,13 +80,15 @@ jobs:
6780
docker run "$img" cpanm -v Net::[email protected]_02
6881
fi
6982
docker run "$img" cpanm -v Mojolicious
83+
7084
- name: Run cpanm no-lwp by default test
7185
run: |
7286
dir='${{ matrix.directory }}'
7387
img="perl:${dir//,/-}"
7488
if [[ "$dir" != *"slim"* ]]; then
7589
docker run "$img" bash -c "cpanm -v -n LWP && cpanm -v -n local::lib"
7690
fi
91+
7792
- name: Run cpm install test
7893
run: |
7994
dir='${{ matrix.directory }}'
@@ -83,13 +98,3 @@ jobs:
8398
docker run "$img" cpm install -v Net::[email protected]_02
8499
fi
85100
docker run "$img" cpm install -v Mojolicious
86-
- name: COPY all to default WORKDIR
87-
run: |
88-
dir='${{ matrix.directory }}'
89-
img="perl:${dir//,/-}"
90-
mkdir -p test/lib
91-
cat <<EOF >Dockerfile
92-
FROM $img
93-
COPY . .
94-
EOF
95-
docker build -f Dockerfile test

0 commit comments

Comments
 (0)