Files
SysAdminAutomation/.gitlab-ci.yml
T
jcoffey-dev 0f17cd6622 Run CI on the self-hosted GitLab
Ports .github/workflows/ci.yml to .gitlab-ci.yml after the GitHub account
was suspended and Actions stopped being reachable. Same checks, same order.

The Actions workflow stays in the tree: it is the reference this was
written from and it works unchanged if the appeal succeeds. The image is
pinned by digest rather than tag, which is the replacement for the
workflow's SHA-pinned actions -- GitLab has no action allowlist to lean on.
2026-09-20 20:11:33 -07:00

27 lines
1.1 KiB
YAML

# CI on the self-hosted GitLab, ported from .github/workflows/shellcheck.yml
# when the GitHub account was suspended on 2026-09-20. The Actions file stays
# in the tree as the reference.
#
# ludeeus/action-shellcheck has no GitLab equivalent, so this runs shellcheck
# directly from its own digest-pinned image and reproduces the settings the
# action was given: severity=warning, gcc format, every script in one run.
stages: [lint]
shellcheck:
stage: lint
image:
name: koalaman/shellcheck:stable@sha256:bb596a0d169b85ddd81d8b6d3a2ff6d5baf5fca10b97f575ebc647c3dff62b3d # stable
# The image's entrypoint is shellcheck itself, which would swallow the
# runner's shell; GitLab needs a shell to drive the job.
entrypoint: [""]
script:
- |
files=$(find . -name '*.sh' -not -path './.git/*' | sort)
[ -n "$files" ] || { echo "no shell scripts found"; exit 1; }
echo "$files" | tr '\n' ' '
shellcheck --severity=warning --format=gcc $files
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH