2019-07-10 19:32:22 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2019-10-23 00:39:04 +00:00
|
|
|
echo "--- dependencies"
|
2019-12-04 23:34:38 +00:00
|
|
|
. .expeditor/buildkite/cache_support.sh
|
|
|
|
install_cache_deps sudo
|
2019-10-23 00:36:00 +00:00
|
|
|
|
|
|
|
echo "--- setting up user"
|
2019-12-04 23:34:38 +00:00
|
|
|
export LANG=C.UTF-8 LANGUAGE=C.UTF-8
|
2019-10-23 00:36:00 +00:00
|
|
|
useradd -m -U --uid 2000 normal
|
|
|
|
echo "normal ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/normal
|
2019-07-15 22:19:45 +00:00
|
|
|
|
2019-09-11 23:20:19 +00:00
|
|
|
echo "--- updating rubygems"
|
2022-06-13 18:24:33 +00:00
|
|
|
gem update -N --system 3.3.3 --force
|
2019-09-11 23:20:19 +00:00
|
|
|
|
2019-07-10 19:32:22 +00:00
|
|
|
echo "--- system details"
|
|
|
|
uname -a
|
2019-09-11 23:20:19 +00:00
|
|
|
gem env
|
2019-07-10 19:32:22 +00:00
|
|
|
bundle --version
|
2019-12-10 21:19:25 +00:00
|
|
|
mount
|
2019-12-10 21:35:45 +00:00
|
|
|
df /tmp
|
2019-12-11 02:20:10 +00:00
|
|
|
echo ${TMPDIR:-unknown}
|
2019-07-10 19:32:22 +00:00
|
|
|
|
2022-02-17 19:15:50 +00:00
|
|
|
if [ -n "${CI_ENABLE_COVERAGE:-}" ]; then
|
|
|
|
# Fetch token from vault ASAP so that long-running tests don't cause our vault token to expire
|
|
|
|
echo "--- installing vault"
|
|
|
|
export VAULT_VERSION=1.9.3
|
|
|
|
export VAULT_HOME=$HOME/vault
|
|
|
|
curl --create-dirs -sSLo $VAULT_HOME/vault.zip https://releases.hashicorp.com/vault/$VAULT_VERSION/vault_${VAULT_VERSION}_linux_amd64.zip
|
|
|
|
unzip -o $VAULT_HOME/vault.zip -d $VAULT_HOME
|
|
|
|
|
|
|
|
echo "--- fetching Sonar token from vault"
|
|
|
|
export SONAR_TOKEN=$($VAULT_HOME/vault kv get -field token secret/inspec/sonar)
|
|
|
|
fi
|
|
|
|
|
2019-12-04 23:34:38 +00:00
|
|
|
echo "--- pull bundle cache"
|
|
|
|
pull_bundle
|
2019-10-31 23:28:50 +00:00
|
|
|
|
2019-12-04 23:34:38 +00:00
|
|
|
echo "--- bundle"
|
2019-10-23 00:39:04 +00:00
|
|
|
bundle config --local path vendor/bundle
|
2021-09-02 10:47:15 +00:00
|
|
|
bundle config set --local without tools maintenance deploy
|
|
|
|
bundle install --jobs=7 --retry=3
|
2019-07-10 19:32:22 +00:00
|
|
|
|
2019-12-04 23:34:38 +00:00
|
|
|
echo "--- push bundle cache"
|
|
|
|
push_bundle
|
2019-10-23 00:39:04 +00:00
|
|
|
|
2019-12-03 23:53:38 +00:00
|
|
|
echo "+++ bundle exec rake ${RAKE_TASK:-}"
|
2019-10-23 00:36:00 +00:00
|
|
|
# TODO: run this as non-root:
|
|
|
|
# chown -R normal:normal /home/normal /workdir
|
|
|
|
# su normal -c "bundle exec rake ${RAKE_TASK:-}"
|
2019-12-04 23:34:38 +00:00
|
|
|
# shellcheck disable=SC2086
|
2019-09-12 20:51:26 +00:00
|
|
|
bundle exec rake ${RAKE_TASK:-}
|
2022-02-17 18:31:19 +00:00
|
|
|
RAKE_EXIT=$?
|
|
|
|
|
|
|
|
# If coverage is enabled, then we need to pick up the coverage/coverage.json file
|
|
|
|
if [ -n "${CI_ENABLE_COVERAGE:-}" ]; then
|
|
|
|
echo "--- installing sonarscanner"
|
|
|
|
export SONAR_SCANNER_VERSION=4.6.2.2472
|
|
|
|
export SONAR_SCANNER_HOME=$HOME/.sonar/sonar-scanner-$SONAR_SCANNER_VERSION-linux
|
|
|
|
curl --create-dirs -sSLo $HOME/.sonar/sonar-scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_VERSION-linux.zip
|
|
|
|
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/
|
|
|
|
export PATH=$SONAR_SCANNER_HOME/bin:$PATH
|
|
|
|
export SONAR_SCANNER_OPTS="-server"
|
|
|
|
|
2022-02-28 00:14:30 +00:00
|
|
|
# Delete the vendor/ directory. I've tried to exclude it using sonar.exclusions,
|
|
|
|
# but that appears to get ignored, and we end up analyzing the gemfile install
|
|
|
|
# which blows our analysis.
|
|
|
|
echo "--- deleting installed gems"
|
|
|
|
rm -rf vendor/
|
|
|
|
|
2022-02-24 15:48:04 +00:00
|
|
|
# See sonar-project.properties for additional settings
|
2022-02-17 18:31:19 +00:00
|
|
|
echo "--- running sonarscanner"
|
|
|
|
sonar-scanner \
|
|
|
|
-Dsonar.sources=. \
|
|
|
|
-Dsonar.host.url=https://sonarcloud.io
|
|
|
|
fi
|
|
|
|
|
|
|
|
exit $RAKE_EXIT
|