From 8c927a055553d1723cbefa4d24e876a9b53bfda8 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 22 Feb 2023 11:25:39 -0500 Subject: [PATCH 01/10] build: add shellcheck workflow for PRs and master Additionally, this brings all existing shell scripts into compliance with ShellCheck. This implements part of an ADR, proposed here: https://github.com/openedx/.github/pull/60 --- .github/workflows/shellcheck.yml | 65 +++++++++++++++++++++++++++++ common/test/data/static/contains.sh | 2 + scripts/all-tests.sh | 8 ++-- scripts/generic-ci-tests.sh | 21 +++++----- scripts/paver_autocomplete.sh | 6 +++ scripts/reset-test-db.sh | 20 ++++----- scripts/vulture/find-dead-code.sh | 16 +++---- 7 files changed, 106 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/shellcheck.yml diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml new file mode 100644 index 000000000000..7a4d77c29bc6 --- /dev/null +++ b/.github/workflows/shellcheck.yml @@ -0,0 +1,65 @@ +# ShellCheck is a linter for your shell scripts: +# https://www.shellcheck.net/ +# This workflow runs it on PRs and pushes to $default-branch + +name: ShellCheck + +on: + pull_request: + push: + branches: + - master + +permissions: + contents: read + +jobs: + + shellcheck: + name: Run ShellCheck + runs-on: ubuntu-latest + + steps: + + - name: Check out branch + uses: actions/checkout@v3 + + # Run ShellCheck using a predefine action: + # https://github.com/marketplace/actions/shellcheck + - name: Run ShellCheck + uses: ludeeus/action-shellcheck@master + env: + + # We pin to a specific version of ShellCheck so that your build doesn't + # break as newer versions with more warnings are released. + # Maintainers: Keep an eye out for newer ShellCheck versions and consider + # upgrading to them when they are released: + # https://github.com/koalaman/shellcheck/tags + version: v0.9.0 + + # Severity levels, in increasing order of strictness: + # error + # warning + # info + # style + # We recommend `style` for maximum coverage, but adjust as you see fit. + severity: style + + # Add any custom shellcheck CLI options here. + # For example, use `-e SC2059` to ignore a certain warning. + # (However, it's usually to ignore individual warnings inline: `# shellcheck: disable=SC2059`) + SHELLCHECK_OPTS: + + # Ignore filepaths or filenames. + # Each is a single string, space-separated. + ignore_paths: + ignore_names: + + # By default, your whole repo is scanned for shell scripts. + # Uncomment the next line if you want to limit to a certain directory. + #scandir: './scripts' + + # This ensures that all .sh files are passed to shellcheck in one go, making + # ShellCheck aware of "include" logic (`source ./constants.sh`) between scripts. + check_together: 'yes' + diff --git a/common/test/data/static/contains.sh b/common/test/data/static/contains.sh index 6aab7a14fe33..318b9ace8946 100644 --- a/common/test/data/static/contains.sh +++ b/common/test/data/static/contains.sh @@ -1,2 +1,4 @@ #!/usr/bin/env zsh +# shellcheck disable=all +# ^ This is zsh, which shellcheck doesn't support. git log --all ^opaque-keys-merge-base --format=%H $1 | while read f; do git branch --contains $f; done | sort -u diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index f1b6e8d7dcd9..2f343ccc8219 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -13,13 +13,13 @@ set -e # Violations thresholds for failing the build source scripts/thresholds.sh -XSSLINT_THRESHOLDS=`cat scripts/xsslint_thresholds.json` +XSSLINT_THRESHOLDS=$(cat scripts/xsslint_thresholds.json) export XSSLINT_THRESHOLDS=${XSSLINT_THRESHOLDS//[[:space:]]/} -# Run appropriate CI system script -if [ -n "$SCRIPT_TO_RUN" ] ; then - $SCRIPT_TO_RUN +# Run appropriate CI system script (with args if provided) +if [ -n "${SCRIPT_TO_RUN[*]}" ] ; then + "${SCRIPT_TO_RUN[@]}" # Exit with the exit code of the called script exit $? diff --git a/scripts/generic-ci-tests.sh b/scripts/generic-ci-tests.sh index 151c9fa7b4c9..5aabf8fde4c2 100755 --- a/scripts/generic-ci-tests.sh +++ b/scripts/generic-ci-tests.sh @@ -55,7 +55,7 @@ git clean -qxfd function emptyxunit { - cat > reports/$1.xml < "reports/$1.xml" < @@ -82,19 +82,18 @@ else fi PAVER_ARGS="-v" -PARALLEL="--processes=-1" export SUBSET_JOB=$JOB_NAME function run_paver_quality { QUALITY_TASK=$1 shift mkdir -p test_root/log/ - LOG_PREFIX=test_root/log/$QUALITY_TASK - $TOX paver $QUALITY_TASK $* 2> $LOG_PREFIX.err.log > $LOG_PREFIX.out.log || { + LOG_PREFIX="test_root/log/$QUALITY_TASK" + $TOX paver "$QUALITY_TASK" "$@" 2> "$LOG_PREFIX.err.log" > "$LOG_PREFIX.out.log" || { echo "STDOUT (last 100 lines of $LOG_PREFIX.out.log):"; - tail -n 100 $LOG_PREFIX.out.log; + tail -n 100 "$LOG_PREFIX.out.log" echo "STDERR (last 100 lines of $LOG_PREFIX.err.log):"; - tail -n 100 $LOG_PREFIX.err.log; + tail -n 100 "$LOG_PREFIX.err.log" return 1; } return 0; @@ -103,6 +102,7 @@ function run_paver_quality { case "$TEST_SUITE" in "quality") + EXIT=0 mkdir -p reports @@ -128,11 +128,11 @@ case "$TEST_SUITE" in echo "Finding pycodestyle violations and storing report..." run_paver_quality run_pep8 || { EXIT=1; } echo "Finding ESLint violations and storing report..." - run_paver_quality run_eslint -l $ESLINT_THRESHOLD || { EXIT=1; } + run_paver_quality run_eslint -l "$ESLINT_THRESHOLD" || { EXIT=1; } echo "Finding Stylelint violations and storing report..." run_paver_quality run_stylelint || { EXIT=1; } echo "Running xss linter report." - run_paver_quality run_xsslint -t $XSSLINT_THRESHOLDS || { EXIT=1; } + run_paver_quality run_xsslint -t "$XSSLINT_THRESHOLDS" || { EXIT=1; } echo "Running PII checker on all Django models..." run_paver_quality run_pii_check || { EXIT=1; } echo "Running reserved keyword checker on all Django models..." @@ -144,7 +144,7 @@ case "$TEST_SUITE" in # Need to create an empty test result so the post-build # action doesn't fail the build. emptyxunit "stub" - exit $EXIT + exit "$EXIT" ;; "js-unit") @@ -153,6 +153,7 @@ case "$TEST_SUITE" in ;; "pavelib-js-unit") + EXIT=0 $TOX paver test_js --coverage --skip-clean || { EXIT=1; } paver test_lib --skip-clean $PAVER_ARGS || { EXIT=1; } @@ -167,6 +168,6 @@ case "$TEST_SUITE" in # Note that by default the value of this variable EXIT is not set, so if # neither command fails then the exit command resolves to simply exit # which is considered successful. - exit $EXIT + exit "$EXIT" ;; esac diff --git a/scripts/paver_autocomplete.sh b/scripts/paver_autocomplete.sh index 6480d12a0f5a..8b4e8111411c 100644 --- a/scripts/paver_autocomplete.sh +++ b/scripts/paver_autocomplete.sh @@ -1,3 +1,9 @@ +# shellcheck disable=all +# ^ Paver in edx-platform is on the way out +# (https://github.com/openedx/edx-platform/issues/31798) +# so we're not going to bother fixing these shellcheck +# violations. + # Courtesy of Gregory Nicholas _subcommand_opts() diff --git a/scripts/reset-test-db.sh b/scripts/reset-test-db.sh index 75fa576c4513..b0573a8e1369 100755 --- a/scripts/reset-test-db.sh +++ b/scripts/reset-test-db.sh @@ -62,23 +62,23 @@ calculate_migrations() { output_file="common/test/db_cache/bok_choy_${db}_migrations.yaml" # Redirect stdout to /dev/null because the script will print # out all migrations to both stdout and the output file. - ./manage.py lms --settings $SETTINGS show_unapplied_migrations --database $db --output_file $output_file 1>/dev/null + ./manage.py lms --settings "$SETTINGS" show_unapplied_migrations --database "$db" --output_file "$output_file" 1>/dev/null } run_migrations() { echo "Running the lms migrations on the $db bok_choy DB." - ./manage.py lms --settings $SETTINGS migrate --database $db --traceback --noinput + ./manage.py lms --settings "$SETTINGS" migrate --database "$db" --traceback --noinput echo "Running the cms migrations on the $db bok_choy DB." - ./manage.py cms --settings $SETTINGS migrate --database $db --traceback --noinput + ./manage.py cms --settings "$SETTINGS" migrate --database "$db" --traceback --noinput } load_cache_into_db() { echo "Loading the schema from the filesystem into the $db MySQL DB." - mysql $MYSQL_HOST -u root "${databases["$db"]}" < $DB_CACHE_DIR/bok_choy_schema_$db.sql + mysql "$MYSQL_HOST" -u root "${databases["$db"]}" < "$DB_CACHE_DIR/bok_choy_schema_$db.sql" echo "Loading the fixture data from the filesystem into the $db MySQL DB." - ./manage.py lms --settings $SETTINGS loaddata --database $db $DB_CACHE_DIR/bok_choy_data_$db.json + ./manage.py lms --settings "$SETTINGS" loaddata --database "$db" "$DB_CACHE_DIR/bok_choy_data_$db.json" echo "Loading the migration data from the filesystem into the $db MySQL DB." - mysql $MYSQL_HOST -u root "${databases["$db"]}" < $DB_CACHE_DIR/bok_choy_migrations_data_$db.sql + mysql "$MYSQL_HOST" -u root "${databases["$db"]}" < "$DB_CACHE_DIR/bok_choy_migrations_data_$db.sql" } rebuild_cache_for_db() { @@ -87,13 +87,13 @@ rebuild_cache_for_db() { # Dump the schema and data to the cache echo "Using the dumpdata command to save the $db fixture data to the filesystem." - ./manage.py lms --settings $SETTINGS dumpdata --database $db > $DB_CACHE_DIR/bok_choy_data_$db.json --exclude=api_admin.Catalog + ./manage.py lms --settings "$SETTINGS" dumpdata --database "$db" > "$DB_CACHE_DIR/bok_choy_data_$db.json" --exclude=api_admin.Catalog echo "Saving the schema of the $db bok_choy DB to the filesystem." - mysqldump $MYSQL_HOST -u root --no-data --skip-comments --skip-dump-date "${databases[$db]}" > $DB_CACHE_DIR/bok_choy_schema_$db.sql + mysqldump "$MYSQL_HOST" -u root --no-data --skip-comments --skip-dump-date "${databases[$db]}" > "$DB_CACHE_DIR/bok_choy_schema_$db.sql" # dump_data does not dump the django_migrations table so we do it separately. echo "Saving the django_migrations table of the $db bok_choy DB to the filesystem." - mysqldump $MYSQL_HOST -u root --no-create-info --skip-comments --skip-dump-date "${databases["$db"]}" django_migrations > $DB_CACHE_DIR/bok_choy_migrations_data_$db.sql + mysqldump $MYSQL_HOST -u root --no-create-info --skip-comments --skip-dump-date "${databases["$db"]}" django_migrations > "$DB_CACHE_DIR/bok_choy_migrations_data_$db.sql" } for db in "${database_order[@]}"; do @@ -107,7 +107,7 @@ for db in "${database_order[@]}"; do # or a jenkins worker environment) that already ran tests on another commit that had # different migrations that created, dropped, or altered tables. echo "Issuing a reset_db command to the $db bok_choy MySQL database." - ./manage.py lms --settings $SETTINGS reset_db --traceback --router $db + ./manage.py lms --settings "$SETTINGS" reset_db --traceback --router "$db" fi if ! [[ $CALCULATE_MIGRATIONS ]]; then diff --git a/scripts/vulture/find-dead-code.sh b/scripts/vulture/find-dead-code.sh index f93d869e5c05..e24882595ebb 100755 --- a/scripts/vulture/find-dead-code.sh +++ b/scripts/vulture/find-dead-code.sh @@ -31,19 +31,19 @@ set -e ############################################################################ OUTPUT_DIR="reports/vulture" -mkdir -p ${OUTPUT_DIR} -OUTPUT_FILE=${OUTPUT_DIR}/vulture-report.txt -echo '' > $OUTPUT_FILE +mkdir -p "$OUTPUT_DIR" +OUTPUT_FILE="${OUTPUT_DIR}/vulture-report.txt" +echo '' > "$OUTPUT_FILE" # exclude test code from analysis, as it isn't explicitly called by other # code. Additionally, application code that is only called by tests # should be considered dead EXCLUSIONS='/test,/acceptance,cms/envs,lms/envs,/terrain,migrations/,signals.py' MIN_CONFIDENCE=90 # paths to the code on which to run the analysis -CODE_PATHS='cms common lms openedx' +CODE_PATHS=('cms' 'common' 'lms' 'openedx') WHITELIST_PATH="$(dirname "${BASH_SOURCE[0]}")/whitelist.py" -echo "Checking for dead code in the following paths: $CODE_PATHS" +echo "Checking for dead code in the following paths: ${CODE_PATHS[*]}" echo "Results can be found in $OUTPUT_FILE" -vulture $CODE_PATHS $WHITELIST_PATH --exclude $EXCLUSIONS \ ---min-confidence $MIN_CONFIDENCE \ ---sort-by-size |tac > $OUTPUT_FILE +vulture "${CODE_PATHS[@]}" "$WHITELIST_PATH" --exclude "$EXCLUSIONS" \ +--min-confidence "$MIN_CONFIDENCE" \ +--sort-by-size |tac > "$OUTPUT_FILE" From 7ccd4bb389465c2fca8da8e965a18f980946d69c Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 1 Mar 2023 18:08:21 -0500 Subject: [PATCH 02/10] build: squash: use an openedx-defined action rather than a 3rd party one --- .github/workflows/shellcheck.yml | 85 +++++++++++++++----------------- 1 file changed, 39 insertions(+), 46 deletions(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 7a4d77c29bc6..f53a53f2cf1a 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -1,6 +1,7 @@ -# ShellCheck is a linter for your shell scripts: -# https://www.shellcheck.net/ -# This workflow runs it on PRs and pushes to $default-branch +# Run ShellCheck on PRs and master + +# For more context, see: +# https://github.com/openedx/.github/blob/master/docs/decisions/0001-shellcheck.rst name: ShellCheck @@ -14,52 +15,44 @@ permissions: contents: read jobs: - shellcheck: - name: Run ShellCheck runs-on: ubuntu-latest - steps: - - name: Check out branch + - name: Check out this repository uses: actions/checkout@v3 - # Run ShellCheck using a predefine action: - # https://github.com/marketplace/actions/shellcheck - - name: Run ShellCheck - uses: ludeeus/action-shellcheck@master - env: - - # We pin to a specific version of ShellCheck so that your build doesn't - # break as newer versions with more warnings are released. - # Maintainers: Keep an eye out for newer ShellCheck versions and consider - # upgrading to them when they are released: - # https://github.com/koalaman/shellcheck/tags - version: v0.9.0 - - # Severity levels, in increasing order of strictness: - # error - # warning - # info - # style - # We recommend `style` for maximum coverage, but adjust as you see fit. - severity: style - - # Add any custom shellcheck CLI options here. - # For example, use `-e SC2059` to ignore a certain warning. - # (However, it's usually to ignore individual warnings inline: `# shellcheck: disable=SC2059`) - SHELLCHECK_OPTS: - - # Ignore filepaths or filenames. - # Each is a single string, space-separated. - ignore_paths: - ignore_names: - - # By default, your whole repo is scanned for shell scripts. - # Uncomment the next line if you want to limit to a certain directory. - #scandir: './scripts' - - # This ensures that all .sh files are passed to shellcheck in one go, making - # ShellCheck aware of "include" logic (`source ./constants.sh`) between scripts. - check_together: 'yes' - + - name: Check out shared actions + uses: actions/checkout@v3 + with: + repository: kdmccormick/openedx.github + #repository: openedx/.github + ref: kdmccormick/shellcheck-impl + path: ./openedx-dot-github + + - name: Run ShellCheck! + uses: ./openedx-dot-github/.github/actions/shellcheck + with: + + # REQUIRED: + # Directories to search for .sh files, space-separated, each relative + # to the root of the repository. Directories containing spaces or other + # Bash delimiters must be wrapped in single quotes. + root-dirs: "./scripts ./.github ./lms ./cms ./xmodule ./common/ ./openedx" + + # OPTIONAL: + # ShellCheck version to install. + # Must be a tag or branch of https://github.com/koalaman/shellcheck. + # By default, the upstream action will use a reasonable, stable shellcheck version, + # which will be updated over time as new stable ShellCheck versions come out. + # If you want your repositoriy's build to be totally deterministic, though, then + # override with a specific version pin here, and manage updates ShellCheck yourself. + shellcheck-version: "v0.9.0" + + # OPTIONAL: + # Command-line options to pass to ShellCheck. + # These options will be inserted into the shellcheck invocation, a la: + # shellcheck + # For details of the options that are availble, run: + # shellcheck --help + #shellcheck-options: "" From 6d7cd22ddb796e93738ae1a2beb713c98bebc841 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 8 Mar 2023 23:03:27 -0500 Subject: [PATCH 03/10] build: squash: switch back to reusable workflow --- .github/workflows/shellcheck.yml | 52 ++++++++------------------------ 1 file changed, 12 insertions(+), 40 deletions(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index f53a53f2cf1a..fae14bcf1db9 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -16,43 +16,15 @@ permissions: jobs: shellcheck: - runs-on: ubuntu-latest - steps: - - - name: Check out this repository - uses: actions/checkout@v3 - - - name: Check out shared actions - uses: actions/checkout@v3 - with: - repository: kdmccormick/openedx.github - #repository: openedx/.github - ref: kdmccormick/shellcheck-impl - path: ./openedx-dot-github - - - name: Run ShellCheck! - uses: ./openedx-dot-github/.github/actions/shellcheck - with: - - # REQUIRED: - # Directories to search for .sh files, space-separated, each relative - # to the root of the repository. Directories containing spaces or other - # Bash delimiters must be wrapped in single quotes. - root-dirs: "./scripts ./.github ./lms ./cms ./xmodule ./common/ ./openedx" - - # OPTIONAL: - # ShellCheck version to install. - # Must be a tag or branch of https://github.com/koalaman/shellcheck. - # By default, the upstream action will use a reasonable, stable shellcheck version, - # which will be updated over time as new stable ShellCheck versions come out. - # If you want your repositoriy's build to be totally deterministic, though, then - # override with a specific version pin here, and manage updates ShellCheck yourself. - shellcheck-version: "v0.9.0" - - # OPTIONAL: - # Command-line options to pass to ShellCheck. - # These options will be inserted into the shellcheck invocation, a la: - # shellcheck - # For details of the options that are availble, run: - # shellcheck --help - #shellcheck-options: "" + strategy: + matrix: + os: ["ubuntu", "macos"] + #uses: openedx/.github/.github/workflows/shellcheck.yml@master + uses: kdmccormick/openedx.github/.github/workflows/shellcheck.yml@kdmccormick/shellcheck-impl + with: + # For details on the meaning of each of these arguments, see: + # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml + root-dirs: "./scripts ./.github ./lms ./cms ./xmodule ./common/ ./openedx" + operating-system: "${{ matrix.os }}" + shellcheck-version: "v0.9.0" + #shellcheck-options: "" From b6a57993a52337aedca69aa44c6e469a9060280f Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Thu, 9 Mar 2023 14:22:19 -0500 Subject: [PATCH 04/10] build: squash: exclude not include --- .github/workflows/shellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index fae14bcf1db9..085b1236081f 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -24,7 +24,7 @@ jobs: with: # For details on the meaning of each of these arguments, see: # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml - root-dirs: "./scripts ./.github ./lms ./cms ./xmodule ./common/ ./openedx" + exclude-patterns: "./node_modules/*" operating-system: "${{ matrix.os }}" shellcheck-version: "v0.9.0" #shellcheck-options: "" From 6b069cd88af432216722b256e350b8ba511dc336 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Wed, 1 Mar 2023 20:51:56 -0500 Subject: [PATCH 05/10] temp: add a test sc violation --- scripts/verify-dunder-init.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/verify-dunder-init.sh b/scripts/verify-dunder-init.sh index 3c94785c06b9..6bdf649a019b 100755 --- a/scripts/verify-dunder-init.sh +++ b/scripts/verify-dunder-init.sh @@ -18,6 +18,7 @@ set -euo pipefail # Strict mode. +ls $whoops ## Directories that contain Python source code, but for which we don't care ## whether or not there's a __init__.py file. From ba43bf43d39cb88b270cca5ca96be14c4a3d0fa3 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Thu, 9 Mar 2023 15:57:20 -0500 Subject: [PATCH 06/10] temp: exclude everything, to test 'no input' scenario --- .github/workflows/shellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 085b1236081f..82974c68ce93 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -24,7 +24,7 @@ jobs: with: # For details on the meaning of each of these arguments, see: # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml - exclude-patterns: "./node_modules/*" + exclude-patterns: "./*" operating-system: "${{ matrix.os }}" shellcheck-version: "v0.9.0" #shellcheck-options: "" From 443286f2b0c361ef23d80279312cf17136a384a8 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Thu, 9 Mar 2023 16:06:13 -0500 Subject: [PATCH 07/10] Revert "temp: exclude everything, to test 'no input' scenario" This reverts commit a070c30fcc52a9485d2b0ec229e0deb75a5cc958. --- .github/workflows/shellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 82974c68ce93..085b1236081f 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -24,7 +24,7 @@ jobs: with: # For details on the meaning of each of these arguments, see: # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml - exclude-patterns: "./*" + exclude-patterns: "./node_modules/*" operating-system: "${{ matrix.os }}" shellcheck-version: "v0.9.0" #shellcheck-options: "" From a254a1cc38e9afe7c7522e09cd838a67a57e1556 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Thu, 9 Mar 2023 16:06:18 -0500 Subject: [PATCH 08/10] Revert "temp: add a test sc violation" This reverts commit c2c78034864c42b571c87577f8dc19888a70974f. --- scripts/verify-dunder-init.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/verify-dunder-init.sh b/scripts/verify-dunder-init.sh index 6bdf649a019b..3c94785c06b9 100755 --- a/scripts/verify-dunder-init.sh +++ b/scripts/verify-dunder-init.sh @@ -18,7 +18,6 @@ set -euo pipefail # Strict mode. -ls $whoops ## Directories that contain Python source code, but for which we don't care ## whether or not there's a __init__.py file. From b48ecfd82f1bcd838efdbe994ed886fd7df3f7d9 Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Fri, 10 Mar 2023 10:51:00 -0500 Subject: [PATCH 09/10] build: squash: switch from kdmccormick to upstream & add feanil's node_modules comment --- .github/workflows/shellcheck.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 085b1236081f..b514ef9d3a5a 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -19,11 +19,13 @@ jobs: strategy: matrix: os: ["ubuntu", "macos"] - #uses: openedx/.github/.github/workflows/shellcheck.yml@master - uses: kdmccormick/openedx.github/.github/workflows/shellcheck.yml@kdmccormick/shellcheck-impl + uses: openedx/.github/.github/workflows/shellcheck.yml@master with: # For details on the meaning of each of these arguments, see: # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml + # We exclude `./node_modules/*` by default because we want people to easily be able to + # copy and run the command locally. Local copies of most of our services have a `./node_modules` + # directory that we want to ignore. exclude-patterns: "./node_modules/*" operating-system: "${{ matrix.os }}" shellcheck-version: "v0.9.0" From 112d3dabe17436fa62407bc3b1479ac3fb04daab Mon Sep 17 00:00:00 2001 From: Kyle McCormick Date: Fri, 10 Mar 2023 10:52:01 -0500 Subject: [PATCH 10/10] build: squash: typo githu -> github --- .github/workflows/shellcheck.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index b514ef9d3a5a..704ff778a1b1 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -22,7 +22,7 @@ jobs: uses: openedx/.github/.github/workflows/shellcheck.yml@master with: # For details on the meaning of each of these arguments, see: - # https://githu.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml + # https://github.com/openedx/.github/blob/master/.github/workflows/shellcheck.yml # We exclude `./node_modules/*` by default because we want people to easily be able to # copy and run the command locally. Local copies of most of our services have a `./node_modules` # directory that we want to ignore.