Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Maintained in https://github.com/coreos/repo-templates
# Do not edit downstream.

name: Go
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read

# don't waste job slots on superseded code
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: Test
strategy:
matrix:
go-version: [1.25.x, 1.26.x]
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Check out repository
uses: actions/checkout@v6
- name: Check Go formatting (gofmt)
shell: bash
run: |
GO_FILES=$(find . -name '*.go' -not -path "./vendor/*")
UNFORMATTED_FILES=$(gofmt -l $GO_FILES)
if [ -n "$UNFORMATTED_FILES" ]; then
echo "Go files are not formatted. Please run 'gofmt -w .' on your code."
gofmt -d $UNFORMATTED_FILES
exit 1
fi
echo "All Go files are correctly formatted."
- name: Run linter
uses: golangci/golangci-lint-action@v8
with:
version: v2.11.3
24 changes: 24 additions & 0 deletions .github/workflows/shellcheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Template generated by https://github.com/coreos/repo-templates; do not edit downstream

name: ShellCheck

on:
pull_request:
branches: [main, rhel-*, rhcos-*]

permissions:
contents: read

jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
container: quay.io/coreos-assembler/fcos-buildroot:testing-devel
steps:
- name: Check out repository
uses: actions/checkout@v6
# https://github.com/actions/checkout/issues/760
- name: Mark git checkout as safe
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Run ShellCheck
run: ci/shellcheck
35 changes: 35 additions & 0 deletions ci/shellcheck
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash
# Template generated by https://github.com/coreos/repo-templates; do not edit downstream

set -euo pipefail

main() {
local found_errors="false"
# Let's start with error, then we can do warning, info, style
local -r severity="error"

while IFS= read -r -d '' f; do
# Skip non-text files that are very unlikely to be shell scripts
if [[ "$(file -b --mime-type "${f}" | sed 's|/.*||')" != "text" ]]; then
continue
fi
Comment thread
dustymabe marked this conversation as resolved.
shebang="$(head -1 "${f}")"
if [[ "${f}" == *.sh ]] || \
[[ ${shebang} =~ ^#!/.*/bash.* ]] || \
[[ ${shebang} =~ ^#!/.*/env\ bash ]]; then
echo "[+] Checking ${f}"
shellcheck --external-sources --shell bash --severity="${severity}" "${f}" || found_errors="true"
bash -n "${f}" || found_errors="true"
fi
done< <(find . -path "./.git" -prune -o -path "./vendor" -prune -o -type f -print0)

if [[ "${found_errors}" != "false" ]]; then
Comment thread
dustymabe marked this conversation as resolved.
echo "[+] Found errors with ShellCheck"
exit 1
fi

echo "[+] No error found with ShellCheck"
exit 0
}

main "${@}"