Skip to content
Draft
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
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[*.sh]
indent_style = space
indent_size = 4
2 changes: 2 additions & 0 deletions .github/sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ group:
files:
- source: config/workflows/
dest: .github/workflows/
- source: config/scripts/
dest: scripts/shared/
24 changes: 24 additions & 0 deletions .github/workflows/shell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Lint shell scripts
on:
pull_request:
branches:
- main
jobs:
shellcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install shellcheck
run: sudo apt-get update && sudo apt-get install shellcheck -y
- name: Run shellcheck
run: shellcheck config/scripts/*
shfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install shfmt
run: |
wget https://github.com/mvdan/sh/releases/download/v3.5.1/shfmt_v3.5.1_linux_amd64 -O shfmt
chmod +x shfmt
- name: Run shfmt
run: ./shfmt --diff config/scripts
4 changes: 4 additions & 0 deletions .shellcheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
source-path=config/scripts
enable=avoid-nullary-conditions
enable=deprecate-which
enable=quote-safe-variables
15 changes: 15 additions & 0 deletions config/scripts/get_branch.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# gets the "base branch" against which to compare analysis results;
# this would be the base branch for PRs and the head branch for pushes
set -euo pipefail

PR_NUMBER="${1:-}"

#shellcheck source=lib.sh
source "$(dirname "$0")/lib.sh"

if [ -z "${PR_NUMBER}" ]; then
git branch --show-current
else
curl_gh "https://api.github.com/repos/${GITHUB_REPOSITORY}/pulls/${PR_NUMBER}" | jq .head.ref
fi
26 changes: 26 additions & 0 deletions config/scripts/lib.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
## This file is intended to be sourced by other scripts

## if DEBUG is present in the env, will enable echoing every command
if [ -n "${DEBUG:-}" ]; then
set -x
echo "DEBUG enabled"
fi

## echoes to stderr
function err() {
echo >&2 "$@"
}

## makes an authenticated request to the Github API using the GITHUB_TOKEN from the environment
function curl_gh() {
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
curl \
--silent \
--header "Authorization: token $GITHUB_TOKEN" \
"$@"
else
err "WARNING: No GITHUB_TOKEN found. Skipping API call"
fi

}