ci: add actionlint for workflow validation

This commit is contained in:
Amadeus Mader 2026-03-04 13:45:35 +01:00
parent a98f2b09d0
commit af2751ff61
3 changed files with 17 additions and 12 deletions

View file

@ -52,21 +52,21 @@ jobs:
# workflow_dispatch uses the selected platforms input
if [[ "${{ github.event_name }}" == "release" ]]; then
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"},{"platform":"linux/arm64","runner":"ubuntu-24.04-arm"}]}' >> $GITHUB_OUTPUT
echo "is_multi_arch=true" >> $GITHUB_OUTPUT
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"},{"platform":"linux/arm64","runner":"ubuntu-24.04-arm"}]}' >> "$GITHUB_OUTPUT"
echo "is_multi_arch=true" >> "$GITHUB_OUTPUT"
elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
PLATFORMS="${{ inputs.platforms }}"
if [[ "$PLATFORMS" == *"arm64"* ]]; then
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"},{"platform":"linux/arm64","runner":"ubuntu-24.04-arm"}]}' >> $GITHUB_OUTPUT
echo "is_multi_arch=true" >> $GITHUB_OUTPUT
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"},{"platform":"linux/arm64","runner":"ubuntu-24.04-arm"}]}' >> "$GITHUB_OUTPUT"
echo "is_multi_arch=true" >> "$GITHUB_OUTPUT"
else
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"}]}' >> $GITHUB_OUTPUT
echo "is_multi_arch=false" >> $GITHUB_OUTPUT
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"}]}' >> "$GITHUB_OUTPUT"
echo "is_multi_arch=false" >> "$GITHUB_OUTPUT"
fi
else
# Push to master - only amd64 for faster dev builds
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"}]}' >> $GITHUB_OUTPUT
echo "is_multi_arch=false" >> $GITHUB_OUTPUT
echo 'matrix={"include":[{"platform":"linux/amd64","runner":"ubuntu-latest"}]}' >> "$GITHUB_OUTPUT"
echo "is_multi_arch=false" >> "$GITHUB_OUTPUT"
fi
build:
@ -79,9 +79,9 @@ jobs:
steps:
- name: Prepare environment
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
platform="${{ matrix.platform }}"
echo "PLATFORM_PAIR=${platform//\//-}" >> "$GITHUB_ENV"
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >> "$GITHUB_ENV"
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@ -137,7 +137,7 @@ jobs:
steps:
- name: Prepare environment
run: |
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}" >> "$GITHUB_ENV"
- name: Download digests
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
@ -172,6 +172,7 @@ jobs:
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
# shellcheck disable=SC2046
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)

View file

@ -30,6 +30,7 @@
docker-compose
opencode
typos
actionlint
nodejs_22
yarn
erlang_28

View file

@ -9,3 +9,6 @@ pre-commit:
run: mix format --check-formatted
- name: typos
run: typos {staged_files}
- name: actionlint
glob: '.github/workflows/*.{yml,yaml}'
run: actionlint {staged_files}