Commit be6a6ec8 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch 'ashmckenzie/new-shellcheck-job' into 'master'

New `shellcheck` CI job

See merge request gitlab-org/gitlab!73512
parents b6738c70 10bb7811
......@@ -373,6 +373,10 @@
- ".dockerignore"
- "qa/**/*"
.code-shell-patterns: &code-shell-patterns
- "bin/**/*"
- "tooling/**/*"
# .code-backstage-qa-patterns + .workhorse-patterns
.setup-test-env-patterns: &setup-test-env-patterns
- "{package.json,yarn.lock}"
......@@ -1775,6 +1779,13 @@
- changes: *code-backstage-qa-patterns
- changes: *startup-css-patterns
###############
# Shell rules #
###############
.shell:rules:
rules:
- changes: *code-shell-patterns
#######################
# Test metadata rules #
#######################
......
......@@ -107,3 +107,15 @@ feature-flags-usage:
when: always
paths:
- tmp/feature_flags/
shellcheck:
extends:
- .default-retry
- .shell:rules
stage: lint
needs: []
image:
name: koalaman/shellcheck-alpine
entrypoint: [""]
script:
- tooling/bin/shellcheck
#!/usr/bin/env bash
cd $(dirname $0)/..
cd "$(dirname "$0")/.." || exit
app_root=$(pwd)
sidekiq_workers=${SIDEKIQ_WORKERS:-1}
sidekiq_queues=${SIDEKIQ_QUEUES:-*} # Queues to listen to; default to `*` (all)
sidekiq_pidfile="$app_root/tmp/pids/sidekiq-cluster.pid"
sidekiq_logfile="$app_root/log/sidekiq.log"
gitlab_user=$(ls -l config.ru | awk '{print $3}')
trap cleanup EXIT
......@@ -17,26 +17,26 @@ warn()
get_sidekiq_pid()
{
if [ ! -f $sidekiq_pidfile ]; then
if [ ! -f "$sidekiq_pidfile" ]; then
warn "No pidfile found at $sidekiq_pidfile; is Sidekiq running?"
return
fi
cat $sidekiq_pidfile
cat "$sidekiq_pidfile"
}
stop()
{
sidekiq_pid=$(get_sidekiq_pid)
if [ $sidekiq_pid ]; then
kill -TERM $sidekiq_pid
if [ "$sidekiq_pid" ]; then
kill -TERM "$sidekiq_pid"
fi
}
restart()
{
if [ -f $sidekiq_pidfile ]; then
if [ -f "$sidekiq_pidfile" ]; then
stop
fi
......@@ -53,12 +53,12 @@ start_sidekiq()
fi
# sidekiq-cluster expects an argument per process.
for (( i=1; i<=$sidekiq_workers; i++ ))
for (( i=1; i<=sidekiq_workers; i++ ))
do
processes_args+=("${sidekiq_queues}")
done
${cmd} bin/sidekiq-cluster "${processes_args[@]}" -P $sidekiq_pidfile -e $RAILS_ENV "$@" 2>&1 | tee -a $sidekiq_logfile
${cmd} bin/sidekiq-cluster "${processes_args[@]}" -P "$sidekiq_pidfile" -e "$RAILS_ENV" "$@" 2>&1 | tee -a "$sidekiq_logfile"
}
cleanup()
......
#!/bin/sh
cd $(dirname $0)/.. || exit 1
cd "$(dirname "$0")/.." || exit 1
app_root=$(pwd)
mail_room_pidfile="$app_root/tmp/pids/mail_room.pid"
......@@ -9,8 +9,7 @@ mail_room_config="$app_root/config/mail_room.yml"
get_mail_room_pid()
{
local pid
pid=$(cat $mail_room_pidfile)
pid=$(cat "$mail_room_pidfile")
if [ -z "$pid" ] ; then
echo "Could not find a PID in $mail_room_pidfile"
exit 1
......@@ -20,13 +19,13 @@ get_mail_room_pid()
start()
{
bin/daemon_with_pidfile $mail_room_pidfile bundle exec mail_room --log-exit-as json -q -c $mail_room_config >> $mail_room_logfile 2>&1
bin/daemon_with_pidfile "$mail_room_pidfile" bundle exec mail_room --log-exit-as json -q -c "$mail_room_config" >> "$mail_room_logfile" 2>&1
}
stop()
{
get_mail_room_pid
kill -TERM $mail_room_pid
kill -TERM "$mail_room_pid"
}
restart()
......
......@@ -32,20 +32,20 @@ if [ -z "$RSYNC" ] ; then
RSYNC=rsync
fi
if ! cd $SRC ; then
if ! cd "$SRC" ; then
echo "cd $SRC failed"
exit 1
fi
rsyncjob() {
relative_dir="./${1#$SRC}"
relative_dir="./${1#"$SRC"}"
if ! $RSYNC --delete --relative -a "$relative_dir" "$DEST" ; then
echo "rsync $1 failed"
return 1
fi
echo "$1" >> $LOGFILE
echo "$1" >> "$LOGFILE"
}
export LOGFILE SRC DEST RSYNC
......
......@@ -2,7 +2,7 @@
set -e
cd $(dirname $0)/..
cd "$(dirname "$0")/.."
app_root=$(pwd)
puma_pidfile="$app_root/tmp/pids/puma.pid"
......@@ -25,12 +25,12 @@ get_puma_pid()
start()
{
spawn_puma &
spawn_puma "$@" &
}
start_foreground()
{
spawn_puma
spawn_puma "$@"
}
stop()
......@@ -46,10 +46,10 @@ reload()
case "$1" in
start)
start
start "$@"
;;
start_foreground)
start_foreground
start_foreground "$@"
;;
stop)
stop
......
......@@ -10,6 +10,7 @@ shift
# Use set -a to export all variables defined in env_file.
set -a
# shellcheck disable=SC1090
. "${env_file}"
set +a
......
#!/bin/sh
root="$(cd "$(dirname "$0")/../.." || exit ; pwd -P)"
if [ $# -ne 0 ]; then
shellcheck --exclude=SC1071 --external-sources "$@"
else
find \
"${root}/bin" \
"${root}/tooling" \
-type f \
-not -path "*.swp" \
-not -path "*.rb" \
-not -path "*.js" \
-not -path "*.md" \
-not -path "*.haml" \
-not -path "*/Gemfile*" \
-not -path '*/.bundle*' \
-not -path '*/Makefile*' \
-print0 \
| xargs -0 shellcheck --exclude=SC1071 --external-sources --
fi
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment