Skip to content

Commit 800cac6

Browse files
committed
feat: lint build-ci-docker-images.yaml
1 parent 0846aca commit 800cac6

File tree

2 files changed

+42
-10
lines changed

2 files changed

+42
-10
lines changed

.github/workflows/build-ci-docker-images.yaml

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ on:
9494
# NOTE: keep in-sync with env.TEST_IMAGE
9595
default: testimage
9696
PLATFORMS:
97+
description: |-
98+
Select platforms to build
9799
default: linux/amd64
98100
TAG_DATE:
99101
description: Tag image date in ISO format (YYYYMMDD)
@@ -147,11 +149,11 @@ jobs:
147149
# NOTE:
148150
# GH_SHA_BEFORE is empty on pushing the first commit of a new branch
149151
# or when running manually via workflow_dispatch
150-
if [[ -z $GH_SHA_BEFORE ]]; then
151-
DOCKERFILES="$(ls $SPARSE_PATH/*/Dockerfile)"
152+
if [[ -z "$GH_SHA_BEFORE" ]]; then
153+
DOCKERFILES="$(ls "$SPARSE_PATH"/*/Dockerfile)"
152154
else
153155
DOCKERFILES="$(
154-
git diff --name-only $GH_SHA_BEFORE $GH_SHA |
156+
git diff --name-only "$GH_SHA_BEFORE" "$GH_SHA" |
155157
grep Dockerfile || {
156158
# NOTE:
157159
# this grep could fail if e.g. we are force-pushing a stack
@@ -167,22 +169,26 @@ jobs:
167169
DOCKERFILES_JSON="$(echo -n "$DOCKERFILES" | jq -R '.' | jq -sc '.' )"
168170
169171
echo "DOCKERFILES_JSON=$DOCKERFILES_JSON"
170-
echo "DOCKERFILES_JSON=$DOCKERFILES_JSON" >> $GITHUB_ENV
172+
echo "DOCKERFILES_JSON=$DOCKERFILES_JSON" >> "$GITHUB_ENV"
171173
172174
- name: Define targets
173175
id: define_targets
176+
env:
177+
RE_TARGET_INCLUDE: .
174178
run: |-
175179
if [[ "$GH_EVENT_NAME" == "push" ]]; then
176180
RE_TARGET_EXCLUDE="$RE_TARGET_EXCLUDE|$TEST_IMAGE"
177181
fi
178182
179-
DOCKERFILES=($(echo "$DOCKERFILES_JSON" | jq -r 'join(" ")'))
183+
read -ra DOCKERFILES <<< "$(
184+
echo "$DOCKERFILES_JSON" | jq -r 'join(" ")'
185+
)"
180186
181-
if [[ ${#DOCKERFILES[@]} -gt 0 ]]; then
187+
if [[ "${#DOCKERFILES[@]}" -gt 0 ]]; then
182188
TARGETS_LS="$(
183-
grep -i '^FROM .* AS ' ${DOCKERFILES[@]} |
189+
grep -i '^FROM .* AS ' "${DOCKERFILES[@]}" |
184190
awk '{print $NF}' |
185-
{ grep -E "$RE_TARGET_INCLUDE" || true; } |
191+
{ grep -E "${RE_TARGET_INCLUDE:-}" || true; } |
186192
{ grep -vE "$RE_TARGET_EXCLUDE" || true; } |
187193
jq -R '.'
188194
)"
@@ -259,12 +265,12 @@ jobs:
259265
CONTEXT="$SPARSE_PATH/$DISTRO"
260266
261267
{
262-
for tag in ${!TAGS[@]}; do
268+
for tag in "${!TAGS[@]}"; do
263269
echo "IMAGE_TAG_${tag^^}=$IMAGE_NAME:${TAGS[$tag]}"
264270
done
265271
266272
echo "CONTEXT=$CONTEXT"
267-
} >> $GITHUB_ENV
273+
} >> "$GITHUB_ENV"
268274
269275
- name: Set up QEMU
270276
uses: docker/setup-qemu-action@v3

.pre-commit-config.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# See https://pre-commit.com for more information
2+
# See https://pre-commit.com/hooks.html for more hooks
3+
files: >-
4+
(?x)^(
5+
.github/workflows/build-ci-docker-images.yaml
6+
)$
7+
8+
repos:
9+
- repo: https://github.com/pre-commit/pre-commit-hooks
10+
rev: v5.0.0
11+
hooks:
12+
- id: check-merge-conflict
13+
- id: mixed-line-ending
14+
- id: trailing-whitespace
15+
- id: end-of-file-fixer
16+
- id: check-yaml
17+
18+
- repo: https://github.com/mpalmer/action-validator
19+
rev: v0.6.0
20+
hooks:
21+
- id: action-validator
22+
23+
- repo: https://github.com/rhysd/actionlint
24+
rev: v1.7.4
25+
hooks:
26+
- id: actionlint

0 commit comments

Comments
 (0)