From bfb19ab7ffbb2e2577335d571cafacda92ce176b Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Mon, 6 Jul 2026 15:36:11 -0500 Subject: [PATCH 1/5] fix: quote $@ in do_ssh to prevent word splitting Closes: https://github.com/perftool-incubator/crucible-ci/issues/223 Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/actions/common-code/common-code.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/common-code/common-code.sh b/.github/actions/common-code/common-code.sh index 569866c..979697e 100644 --- a/.github/actions/common-code/common-code.sh +++ b/.github/actions/common-code/common-code.sh @@ -71,7 +71,7 @@ function validate_ci_endpoint { } function do_ssh { - ssh -o PasswordAuthentication=no $@ + ssh -o PasswordAuthentication=no "$@" } # Run command on endpoint - use direct execution for localhost, SSH otherwise From b1de39df0ccb8bbb12d45e770bac730213d02b2e Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Mon, 6 Jul 2026 15:39:07 -0500 Subject: [PATCH 2/5] fix: add missing popd and closing quote in check-controller-build The pushd into the CI target directory had no matching popd, and the error message was missing a closing single quote. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../actions/check-controller-build/check-controller-build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/check-controller-build/check-controller-build.sh b/.github/actions/check-controller-build/check-controller-build.sh index 0f09256..14df4e7 100755 --- a/.github/actions/check-controller-build/check-controller-build.sh +++ b/.github/actions/check-controller-build/check-controller-build.sh @@ -123,8 +123,9 @@ else else error "Required history not available for CI target directory '${ci_target_directory}'" fi + popd else - error "Failed to pushd to CI target directory '${ci_target_directory}" + error "Failed to pushd to CI target directory '${ci_target_directory}'" fi fi fi From d0566e8bff55c24426dd0378b40329c85dc8a6bf Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Mon, 6 Jul 2026 15:40:06 -0500 Subject: [PATCH 3/5] fix: correct "oath" to "oauth" in quay token step names Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/core-endpoint-crucible-ci.yaml | 2 +- .github/workflows/core-release-crucible-ci.yaml | 2 +- .github/workflows/endpoint-crucible-ci.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/core-endpoint-crucible-ci.yaml b/.github/workflows/core-endpoint-crucible-ci.yaml index 9c7a57c..b99bdf1 100644 --- a/.github/workflows/core-endpoint-crucible-ci.yaml +++ b/.github/workflows/core-endpoint-crucible-ci.yaml @@ -220,7 +220,7 @@ jobs: ENGINE_REGISTRY_AUTH_SECRET: ${{ secrets.production_registry_auth }} if: ${{ env.ENGINE_REGISTRY_AUTH_SECRET != '' }} run: sudo bash -c "echo \"$ENGINE_REGISTRY_AUTH_SECRET\" > /root/crucible-production-engines-token.json" - - name: import quay oath token + - name: import quay oauth token env: QUAY_OAUTH_TOKEN: ${{ secrets.quay_oauth_token }} if: ${{ env.QUAY_OAUTH_TOKEN != '' }} diff --git a/.github/workflows/core-release-crucible-ci.yaml b/.github/workflows/core-release-crucible-ci.yaml index 39008ff..8870b1f 100644 --- a/.github/workflows/core-release-crucible-ci.yaml +++ b/.github/workflows/core-release-crucible-ci.yaml @@ -220,7 +220,7 @@ jobs: if: ${{ needs.gen-params.outputs.build_controller == 'yes' && env.ENGINE_REGISTRY_AUTH_SECRET != '' }} run: sudo bash -c "echo \"$ENGINE_REGISTRY_AUTH_SECRET\" > /root/crucible-production-engines-token.json" - - name: import quay oath token + - name: import quay oauth token env: QUAY_OAUTH_TOKEN: ${{ secrets.quay_oauth_token }} if: ${{ needs.gen-params.outputs.build_controller == 'yes' && env.QUAY_OAUTH_TOKEN != '' }} diff --git a/.github/workflows/endpoint-crucible-ci.yaml b/.github/workflows/endpoint-crucible-ci.yaml index 85bc298..609fd39 100644 --- a/.github/workflows/endpoint-crucible-ci.yaml +++ b/.github/workflows/endpoint-crucible-ci.yaml @@ -158,7 +158,7 @@ jobs: ENGINE_REGISTRY_AUTH_SECRET: ${{ secrets.production_registry_auth }} if: ${{ env.ENGINE_REGISTRY_AUTH_SECRET != '' }} run: sudo bash -c "echo \"$ENGINE_REGISTRY_AUTH_SECRET\" > /root/crucible-production-engines-token.json" - - name: import quay oath token + - name: import quay oauth token env: QUAY_OAUTH_TOKEN: ${{ secrets.quay_oauth_token }} if: ${{ env.QUAY_OAUTH_TOKEN != '' }} From 2a4a47c41efbd4e2f19893b7864f4dcdb75af88d Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Mon, 6 Jul 2026 15:40:43 -0500 Subject: [PATCH 4/5] fix: add .gitignore to docs-only file filter lists Changes to .gitignore should not trigger CI runs. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/test-benchmark-crucible-ci.yaml | 1 + .github/workflows/test-core-crucible-ci.yaml | 1 + .github/workflows/test-tool-crucible-ci.yaml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/test-benchmark-crucible-ci.yaml b/.github/workflows/test-benchmark-crucible-ci.yaml index 9530ec4..665f268 100644 --- a/.github/workflows/test-benchmark-crucible-ci.yaml +++ b/.github/workflows/test-benchmark-crucible-ci.yaml @@ -21,6 +21,7 @@ jobs: with: files: | LICENSE + .gitignore *.md **/*.md .github/rulesets/** diff --git a/.github/workflows/test-core-crucible-ci.yaml b/.github/workflows/test-core-crucible-ci.yaml index b609ac7..7319857 100644 --- a/.github/workflows/test-core-crucible-ci.yaml +++ b/.github/workflows/test-core-crucible-ci.yaml @@ -21,6 +21,7 @@ jobs: with: files: | LICENSE + .gitignore *.md **/*.md .github/rulesets/** diff --git a/.github/workflows/test-tool-crucible-ci.yaml b/.github/workflows/test-tool-crucible-ci.yaml index 798de52..b5f0dcc 100644 --- a/.github/workflows/test-tool-crucible-ci.yaml +++ b/.github/workflows/test-tool-crucible-ci.yaml @@ -21,6 +21,7 @@ jobs: with: files: | LICENSE + .gitignore *.md **/*.md .github/rulesets/** From 8ea6252720cf0f8091207cf9c2cfa2b9f7282970 Mon Sep 17 00:00:00 2001 From: Karl Rister Date: Mon, 6 Jul 2026 15:42:29 -0500 Subject: [PATCH 5/5] fix: correct typos across crucible-ci descriptiopn, obtian, repoistory, availble, copmatibility, it's/its, custon, Github/GitHub, there/their Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/actions/check-controller-build/action.yml | 2 +- .../actions/check-controller-build/check-controller-build.sh | 2 +- .github/actions/check-controller-build/validate-inputs.sh | 2 +- .github/actions/get-releases/generate-release-list.sh | 2 +- .github/actions/install-crucible/install-crucible.sh | 2 +- .github/actions/integration-tests/run-ci-stage1 | 2 +- .github/rulesets/README.md | 2 +- README.md | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/actions/check-controller-build/action.yml b/.github/actions/check-controller-build/action.yml index e75e60a..4f4129e 100644 --- a/.github/actions/check-controller-build/action.yml +++ b/.github/actions/check-controller-build/action.yml @@ -14,7 +14,7 @@ inputs: description: "Where is the workshop repository to check for workshop updates" required: true ci-target-directory: - descriptiopn: "Where is the current CI target repository to check for controller image related changes" + description: "Where is the current CI target repository to check for controller image related changes" required: true outputs: build-controller: diff --git a/.github/actions/check-controller-build/check-controller-build.sh b/.github/actions/check-controller-build/check-controller-build.sh index 14df4e7..b63d71e 100755 --- a/.github/actions/check-controller-build/check-controller-build.sh +++ b/.github/actions/check-controller-build/check-controller-build.sh @@ -75,7 +75,7 @@ else echo "Files changed:" ${diff_cmd} if [ $? != 0 ]; then - error "could not obtian git-diff output" + error "could not obtain git-diff output" fi echo diff --git a/.github/actions/check-controller-build/validate-inputs.sh b/.github/actions/check-controller-build/validate-inputs.sh index ec2fc46..912902b 100755 --- a/.github/actions/check-controller-build/validate-inputs.sh +++ b/.github/actions/check-controller-build/validate-inputs.sh @@ -19,7 +19,7 @@ function usage() { echo " is a yes|no value" echo " is a yes|no value" echo " is a directory where the crucible repository exists." - echo " is a directory where the workshop repoistory exists." + echo " is a directory where the workshop repository exists." echo " is a directory where the current CI target repository exists." echo echo "If is 'yes' then the action short circuits and returns 'no'" diff --git a/.github/actions/get-releases/generate-release-list.sh b/.github/actions/get-releases/generate-release-list.sh index fc38995..6e7de01 100755 --- a/.github/actions/get-releases/generate-release-list.sh +++ b/.github/actions/get-releases/generate-release-list.sh @@ -47,7 +47,7 @@ if pushd ${crucible_directory}; then else # history is not available - echo "INFO: Required history not availble, assuming no changes to installer script" + echo "INFO: Required history not available, assuming no changes to installer script" fi popd diff --git a/.github/actions/install-crucible/install-crucible.sh b/.github/actions/install-crucible/install-crucible.sh index a697d68..1ade95a 100755 --- a/.github/actions/install-crucible/install-crucible.sh +++ b/.github/actions/install-crucible/install-crucible.sh @@ -320,7 +320,7 @@ if [ "${CI_CONTROLLER}" == "yes" -a "${DISABLE_FORCE_BUILDS}" == "no" ]; then FORCE_BUILDS="true" echo "Updating rickshaw-settings value workshop.force-builds to '${FORCE_BUILDS}' in ${RICKSHAW_SETTINGS_FILE}" - # handle backwards copmatibility to when force_builds was a string + # handle backwards compatibility to when force_builds was a string # instead of a boolean jq_argument_type=argjson case "${RELEASE_TAG}" in diff --git a/.github/actions/integration-tests/run-ci-stage1 b/.github/actions/integration-tests/run-ci-stage1 index 2d4a19e..1a4d01b 100755 --- a/.github/actions/integration-tests/run-ci-stage1 +++ b/.github/actions/integration-tests/run-ci-stage1 @@ -376,7 +376,7 @@ function post_run_cmd { FORCE_BUILDS="false" echo "Updating rickshaw-settings value workshop.force-builds to '${FORCE_BUILDS}' in ${RICKSHAW_SETTINGS_FILE}" - # handle backwards copmatibility to when force_builds was a + # handle backwards compatibility to when force_builds was a # string instead of a boolean jq_argument_type=argjson case "${CI_RELEASE}" in diff --git a/.github/rulesets/README.md b/.github/rulesets/README.md index 49036d3..2f68083 100644 --- a/.github/rulesets/README.md +++ b/.github/rulesets/README.md @@ -1 +1 @@ -The files stored here are for documentation / tracking purposes only. They must be loaded into the GitHub web GUI to be "active" -- there presence here does not result in any behavioral changes by GitHub. +The files stored here are for documentation / tracking purposes only. They must be loaded into the GitHub web GUI to be "active" -- their presence here does not result in any behavioral changes by GitHub. diff --git a/README.md b/README.md index 7aa5440..d00e02a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Introduction -Crucible-CI is a Continuous Integration (CI) testing harness targeted at the [Crucible](https://github.com/perftool-incubator/crucible) performance automation and analysis framework. Crucible is comprised of [many subprojects](https://github.com/perftool-incubator/crucible#subprojects) with each subproject having it's own repository. As such, the primary goal of Crucible-CI is to be able to perform integration testing of a given subproject when changes to it are proposed via a pull request. +Crucible-CI is a Continuous Integration (CI) testing harness targeted at the [Crucible](https://github.com/perftool-incubator/crucible) performance automation and analysis framework. Crucible is comprised of [many subprojects](https://github.com/perftool-incubator/crucible#subprojects) with each subproject having its own repository. As such, the primary goal of Crucible-CI is to be able to perform integration testing of a given subproject when changes to it are proposed via a pull request. What this means is that when a pull request is submitted for a project that is a member of the Crucible family a working Crucible installation is created using the primary branch of all the other repositories and the proposed code for the specific repository that the pull request is for. This installation is then used to perform integration testing of the pull request's changes combined with all of the other project's current upstream code. @@ -80,7 +80,7 @@ These actions are where actual Crucible testing is performed. The [integration-tests](.github/actions/integration-tests) action is where, as the name implies, the integration testing is performed. This action has several different possible inputs, but all of them are optional. By default it will run a very simple integration test based on the default values. By specifying one or more of the available inputs the action can be "tuned" for the type of testing that is desired in the calling workflow. -The integration test is comprised of multiple shell scripts that perform different actions. Some of these scripts are usually specific to the GitHub runner environment, such as [setup-ci-environment](.github/actions/integration-tests/setup-ci-environment) (since it performs a custon install of Crucible), while others can be used outside of the Github runner environment to perform testing in a development environment with an existing running Crucible installation. An example of this is the use of [run-ci-stage1](.github/actions/integration-tests/run-ci-stage1) (which is the actual "test" in this action, the other scripts are primarily for setup and reporting) by the Crucible [`run-ci`](https://github.com/perftool-incubator/crucible/blob/bcdde354c751baff60f8cb9d68203113ec4c3439/bin/_help#L48) command. +The integration test is comprised of multiple shell scripts that perform different actions. Some of these scripts are usually specific to the GitHub runner environment, such as [setup-ci-environment](.github/actions/integration-tests/setup-ci-environment) (since it performs a custom install of Crucible), while others can be used outside of the GitHub runner environment to perform testing in a development environment with an existing running Crucible installation. An example of this is the use of [run-ci-stage1](.github/actions/integration-tests/run-ci-stage1) (which is the actual "test" in this action, the other scripts are primarily for setup and reporting) by the Crucible [`run-ci`](https://github.com/perftool-incubator/crucible/blob/bcdde354c751baff60f8cb9d68203113ec4c3439/bin/_help#L48) command. ### Workflows