Unverified Commit 52441c47 authored by James Lamb's avatar James Lamb Committed by GitHub
Browse files

[ci] make shell scripts stricter (#6266)

parent 89824a6c
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
# #
# BODY: Text that will be appended to the original comment body. # BODY: Text that will be appended to the original comment body.
set -e set -e -E -u -o pipefail
if [ -z "$GITHUB_ACTIONS" ]; then if [ -z "$GITHUB_ACTIONS" ]; then
echo "Must be run inside GitHub Actions CI" echo "Must be run inside GitHub Actions CI"
......
#!/bin/sh #!/bin/sh
set -e -E -u
DIST_DIR=${1} DIST_DIR=${1}
# defaults
METHOD=${METHOD:-""}
TASK=${TASK:-""}
echo "checking Python package distributions in '${DIST_DIR}'" echo "checking Python package distributions in '${DIST_DIR}'"
pip install \ pip install \
......
#!/bin/sh #!/bin/bash
set -e -E -u -o pipefail
echo "running cpplint" echo "running cpplint"
cpplint \ cpplint \
...@@ -32,9 +34,17 @@ get_omp_pragmas_without_num_threads() { ...@@ -32,9 +34,17 @@ get_omp_pragmas_without_num_threads() {
'pragma omp parallel' \ 'pragma omp parallel' \
| grep -v ' num_threads' | grep -v ' num_threads'
} }
# 'grep' returns a non-0 exit code if 0 lines were found.
# Turning off '-e -o pipefail' options here so that bash doesn't
# consider this a failure and stop execution of the script.
#
# ref: https://www.gnu.org/software/grep/manual/html_node/Exit-Status.html
set +e +o pipefail
PROBLEMATIC_LINES=$( PROBLEMATIC_LINES=$(
get_omp_pragmas_without_num_threads get_omp_pragmas_without_num_threads
) )
set -e -o pipefail
if test "${PROBLEMATIC_LINES}" != ""; then if test "${PROBLEMATIC_LINES}" != ""; then
get_omp_pragmas_without_num_threads get_omp_pragmas_without_num_threads
echo "Found '#pragma omp parallel' not using explicit num_threads() configuration. Fix those." echo "Found '#pragma omp parallel' not using explicit num_threads() configuration. Fix those."
......
#!/bin/sh #!/bin/bash
set -e -E -u -o pipefail
echo "running pre-commit checks" echo "running pre-commit checks"
pre-commit run --all-files || exit 1 pre-commit run --all-files || exit 1
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# #
# PR_BRANCH: Name of pull request's branch. # PR_BRANCH: Name of pull request's branch.
set -e set -e -E -u -o pipefail
if [ -z "$GITHUB_ACTIONS" ]; then if [ -z "$GITHUB_ACTIONS" ]; then
echo "Must be run inside GitHub Actions CI" echo "Must be run inside GitHub Actions CI"
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
# #
# SHA: SHA of a commit to set a status on. # SHA: SHA of a commit to set a status on.
set -e set -e -E -u -o pipefail
if [ -z "$GITHUB_ACTIONS" ]; then if [ -z "$GITHUB_ACTIONS" ]; then
echo "Must be run inside GitHub Actions CI" echo "Must be run inside GitHub Actions CI"
......
#!/bin/bash #!/bin/bash
set -e -E -o pipefail set -e -E -u -o pipefail
# defaults
AZURE=${AZURE:-"false"}
IN_UBUNTU_BASE_CONTAINER=${IN_UBUNTU_BASE_CONTAINER:-"false"}
SETUP_CONDA=${SETUP_CONDA:-"true"}
ARCH=$(uname -m) ARCH=$(uname -m)
......
#!/bin/bash #!/bin/bash
set -e -E -u -o pipefail
# oldest versions of dependencies published after # oldest versions of dependencies published after
# minimum supported Python version's first release # minimum supported Python version's first release
# #
......
#!/bin/bash #!/bin/bash
set -e -E -o pipefail set -e -E -o -u pipefail
# defaults
IN_UBUNTU_BASE_CONTAINER=${IN_UBUNTU_BASE_CONTAINER:-"false"}
METHOD=${METHOD:-""}
PRODUCES_ARTIFACTS=${PRODUCES_ARTIFACTS:-"false"}
SANITIZERS=${SANITIZERS:-""}
ARCH=$(uname -m) ARCH=$(uname -m)
...@@ -83,11 +89,11 @@ if [[ $TASK == "lint" ]]; then ...@@ -83,11 +89,11 @@ if [[ $TASK == "lint" ]]; then
'r-lintr>=3.1' 'r-lintr>=3.1'
source activate $CONDA_ENV source activate $CONDA_ENV
echo "Linting Python code" echo "Linting Python code"
sh ${BUILD_DIRECTORY}/.ci/lint-python.sh || exit 1 bash ${BUILD_DIRECTORY}/.ci/lint-python.sh || exit 1
echo "Linting R code" echo "Linting R code"
Rscript ${BUILD_DIRECTORY}/.ci/lint_r_code.R ${BUILD_DIRECTORY} || exit 1 Rscript ${BUILD_DIRECTORY}/.ci/lint_r_code.R ${BUILD_DIRECTORY} || exit 1
echo "Linting C++ code" echo "Linting C++ code"
sh ${BUILD_DIRECTORY}/.ci/lint-cpp.sh || exit 1 bash ${BUILD_DIRECTORY}/.ci/lint-cpp.sh || exit 1
exit 0 exit 0
fi fi
......
#!/bin/bash #!/bin/bash
set -e -E -u -o pipefail
# defaults
ARCH=$(uname -m) ARCH=$(uname -m)
INSTALL_CMAKE_FROM_RELEASES=${INSTALL_CMAKE_FROM_RELEASES:-"false"}
# set up R environment # set up R environment
CRAN_MIRROR="https://cran.rstudio.com" CRAN_MIRROR="https://cran.rstudio.com"
...@@ -212,6 +216,9 @@ if [[ $check_succeeded == "no" ]]; then ...@@ -212,6 +216,9 @@ if [[ $check_succeeded == "no" ]]; then
exit 1 exit 1
fi fi
# ensure 'grep --count' doesn't cause failures
set +e
used_correct_r_version=$( used_correct_r_version=$(
cat $LOG_FILE_NAME \ cat $LOG_FILE_NAME \
| grep --count "using R version ${R_VERSION}" | grep --count "using R version ${R_VERSION}"
......
#!/bin/bash #!/bin/bash
set -e -E -u -o pipefail
RDscriptvalgrind -e "install.packages(c('R6', 'data.table', 'jsonlite', 'Matrix', 'RhpcBLASctl', 'testthat'), repos = 'https://cran.rstudio.com')" || exit 1 RDscriptvalgrind -e "install.packages(c('R6', 'data.table', 'jsonlite', 'Matrix', 'RhpcBLASctl', 'testthat'), repos = 'https://cran.rstudio.com')" || exit 1
sh build-cran-package.sh \ sh build-cran-package.sh \
--r-executable=RDvalgrind \ --r-executable=RDvalgrind \
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# #
# DISPATCH_NAME: Name of a dispatch to be triggered. # DISPATCH_NAME: Name of a dispatch to be triggered.
set -e set -e -E -u -o pipefail
if [ -z "$GITHUB_ACTIONS" ]; then if [ -z "$GITHUB_ACTIONS" ]; then
echo "Must be run inside GitHub Actions CI" echo "Must be run inside GitHub Actions CI"
......
...@@ -134,15 +134,6 @@ jobs: ...@@ -134,15 +134,6 @@ jobs:
r_version: 4.3 r_version: 4.3
build_type: cran build_type: cran
container: null container: null
################
# Other checks #
################
- os: ubuntu-latest
task: r-rchk
compiler: gcc
r_version: 4.3
build_type: cran
container: 'ubuntu:22.04'
steps: steps:
- name: Prevent conversion of line endings on Windows - name: Prevent conversion of line endings on Windows
if: startsWith(matrix.os, 'windows') if: startsWith(matrix.os, 'windows')
......
#!/bin/bash #!/bin/bash
set -e -E -u -o pipefail
# recreates 'configure' from 'configure.ac' # recreates 'configure' from 'configure.ac'
# this script should run on Ubuntu 22.04 # this script should run on Ubuntu 22.04
AUTOCONF_VERSION=$(cat R-package/AUTOCONF_UBUNTU_VERSION) AUTOCONF_VERSION=$(cat R-package/AUTOCONF_UBUNTU_VERSION)
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
# # skip vignette building # # skip vignette building
# sh build-cran-package.sh --no-build-vignettes # sh build-cran-package.sh --no-build-vignettes
set -e set -e -E -u
# Default values of arguments # Default values of arguments
BUILD_VIGNETTES=true BUILD_VIGNETTES=true
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
# Install into user-specific instead of global site-packages directory. # Install into user-specific instead of global site-packages directory.
# Only used with 'install' command. # Only used with 'install' command.
set -e -u set -e -E -u
echo "building lightgbm" echo "building lightgbm"
......
#!/bin/bash #!/bin/bash
set -e -E -u -o pipefail
rm -f ./_FIRST_RUN.flag rm -f ./_FIRST_RUN.flag
export PATH="${CONDA}/bin:${PATH}" export PATH="${CONDA}/bin:${PATH}"
......
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