Skip to content

Commit d02a861

Browse files
committed
Double quote variables in ci-test.sh
Variables should be double-quoted to prevent globbing and word splitting. For more information, see ShellCheck SC2086. Signed-off-by: Tomáš Nevrlka <[email protected]>
1 parent f2ecc95 commit d02a861

File tree

1 file changed

+62
-60
lines changed

1 file changed

+62
-60
lines changed

ci-test.sh

Lines changed: 62 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -9,67 +9,69 @@ eval "$(hack/get-trustification-env.sh)"
99
SKIP_SECRETS=${SKIP_SECRETS:-false}
1010
USE_RHTAP_IMAGES=${USE_RHTAP_IMAGES:-false}
1111

12-
if [ $SKIP_SECRETS == "true" ]; then
12+
if [ "$SKIP_SECRETS" == "true" ]; then
1313
echo "WARNING SKIP_SECRETS set to true, skipping configuration of secrets"
1414
fi
15-
if [ $USE_RHTAP_IMAGES == "true" ]; then
15+
if [ "$USE_RHTAP_IMAGES" == "true" ]; then
1616
echo "USE_RHTAP_IMAGES is set to $USE_RHTAP_IMAGES"
1717
echo "Note - configuration is going to use the runner images and Jenkins from redhat-appstudio"
1818
else
1919
echo "USE_RHTAP_IMAGES is set to $USE_RHTAP_IMAGES"
2020
echo "Note - configuration is going to use the runner images#MY_QUAY_USER and Jenkins MY_GITHUB_USER"
2121
fi
2222

23-
if [ $TEST_REPO_ORG == "redhat-appstudio" ]; then
23+
if [ "$TEST_REPO_ORG" == "redhat-appstudio" ]; then
2424
echo "Cannot do CI testing using the redhat-appstudio org"
2525
echo "You must create forks in your own org and set up MY_TEST_REPO_ORG (github) and MY_TEST_REPO_GITLAB_ORG"
2626
exit
2727
fi
2828

2929
function updateGitAndQuayRefs() {
30-
if [ $USE_RHTAP_IMAGES == "true" ]; then
30+
if [ "$USE_RHTAP_IMAGES" == "true" ]; then
3131
echo "USE_RHTAP_IMAGES is set to $USE_RHTAP_IMAGES"
3232
echo "No images or Jenkins references patched"
3333
else
3434
echo "USE_RHTAP_IMAGES is set to $USE_RHTAP_IMAGES"
3535
echo "images or Jenkins references patched to quay.io/$MY_QUAY_USER and github.com/$MY_GITHUB_USER"
36-
if [ -f $1 ]; then
37-
sed -i "s!quay.io/redhat-appstudio/rhtap-task-runner.*!quay.io/$MY_QUAY_USER/rhtap-task-runner:dev!g" $1
38-
sed -i "s!https://github.com/redhat-appstudio!https://github.com/$MY_GITHUB_USER!g" $1
39-
sed -i "s!RHTAP_Jenkins@.*'!RHTAP_Jenkins@dev'!g" $1
36+
if [ -f "$1" ]; then
37+
sed -i "s!quay.io/redhat-appstudio/rhtap-task-runner.*!quay.io/$MY_QUAY_USER/rhtap-task-runner:dev!g" "$1"
38+
sed -i "s!https://github.com/redhat-appstudio!https://github.com/$MY_GITHUB_USER!g" "$1"
39+
sed -i "s!RHTAP_Jenkins@.*'!RHTAP_Jenkins@dev'!g" "$1"
4040
fi
4141
fi
4242
}
4343

4444
function updateBuild() {
4545
REPO=$1
4646
GITOPS_REPO_UPDATE=$2
47-
mkdir -p $REPO/rhtap
47+
mkdir -p "$REPO/rhtap"
4848
SETUP_ENV=$REPO/rhtap/env.sh
49-
cp rhtap/env.template.sh $SETUP_ENV
50-
sed -i "s!\${{ values.image }}!$IMAGE_TO_BUILD!g" $SETUP_ENV
51-
sed -i "s!\${{ values.dockerfile }}!Dockerfile!g" $SETUP_ENV
52-
sed -i "s!\${{ values.buildContext }}!.!g" $SETUP_ENV
53-
sed -i "s!\${{ values.repoURL }}!$GITOPS_REPO_UPDATE!g" $SETUP_ENV
49+
cp rhtap/env.template.sh "$SETUP_ENV"
50+
sed -i "s!\${{ values.image }}!$IMAGE_TO_BUILD!g" "$SETUP_ENV"
51+
sed -i "s!\${{ values.dockerfile }}!Dockerfile!g" "$SETUP_ENV"
52+
sed -i "s!\${{ values.buildContext }}!.!g" "$SETUP_ENV"
53+
sed -i "s!\${{ values.repoURL }}!$GITOPS_REPO_UPDATE!g" "$SETUP_ENV"
5454
# Update REKOR_HOST and TUF_MIRROR values directly
55-
sed -i '/export REKOR_HOST=/d' $SETUP_ENV
56-
sed -i '/export TUF_MIRROR=/d' $SETUP_ENV
57-
sed -i '/export IGNORE_REKOR=/d' $SETUP_ENV
58-
59-
echo "" >> $SETUP_ENV
60-
echo "export REKOR_HOST=$REKOR_HOST" >> $SETUP_ENV
61-
echo "export IGNORE_REKOR=$IGNORE_REKOR" >> $SETUP_ENV
62-
echo "export TUF_MIRROR=$TUF_MIRROR" >> $SETUP_ENV
63-
echo "# Update forced CI test $(date)" >> $SETUP_ENV
55+
sed -i '/export REKOR_HOST=/d' "$SETUP_ENV"
56+
sed -i '/export TUF_MIRROR=/d' "$SETUP_ENV"
57+
sed -i '/export IGNORE_REKOR=/d' "$SETUP_ENV"
58+
59+
{
60+
echo ""
61+
echo "export REKOR_HOST=$REKOR_HOST"
62+
echo "export IGNORE_REKOR=$IGNORE_REKOR"
63+
echo "export TUF_MIRROR=$TUF_MIRROR"
64+
echo "# Update forced CI test $(date)"
65+
} >> "$SETUP_ENV"
6466

6567
if [[ "$TEST_PRIVATE_REGISTRY" == "true" ]]; then
6668
echo "WARNING Due to private repos, disabling ACS"
67-
sed -i '/export DISABLE_ACS=/d' $SETUP_ENV
68-
echo "export DISABLE_ACS=true" >> $SETUP_ENV
69+
sed -i '/export DISABLE_ACS=/d' "$SETUP_ENV"
70+
echo "export DISABLE_ACS=true" >> "$SETUP_ENV"
6971
fi
7072

71-
updateGitAndQuayRefs $SETUP_ENV
72-
cat $SETUP_ENV
73+
updateGitAndQuayRefs "$SETUP_ENV"
74+
cat "$SETUP_ENV"
7375
}
7476

7577
# create latest images for dev github and gitlab
@@ -79,12 +81,12 @@ bash hack/update-jenkins-library
7981

8082
# Repos on github and gitlab, github and jenkins
8183
# source repos are updated with the name of the corresponding GITOPS REPO for update-deployment
82-
updateBuild $BUILD $TEST_GITOPS_REPO
83-
updateBuild $GITOPS
84-
updateBuild $GITLAB_BUILD $TEST_GITOPS_GITLAB_REPO
85-
updateBuild $GITLAB_GITOPS
86-
updateBuild $JENKINS_BUILD $TEST_GITOPS_JENKINS_REPO
87-
updateBuild $JENKINS_GITOPS
84+
updateBuild "$BUILD" "$TEST_GITOPS_REPO"
85+
updateBuild "$GITOPS"
86+
updateBuild "$GITLAB_BUILD" "$TEST_GITOPS_GITLAB_REPO"
87+
updateBuild "$GITLAB_GITOPS"
88+
updateBuild "$JENKINS_BUILD" "$TEST_GITOPS_JENKINS_REPO"
89+
updateBuild "$JENKINS_GITOPS"
8890

8991
# source repos for copying the generated manifests
9092
GEN_SRC=generated/source-repo
@@ -93,31 +95,31 @@ GEN_GITOPS=generated/gitops-template
9395
#Jenkins
9496
echo "Update Jenkins file in $JENKINS_BUILD and $JENKINS_GITOPS"
9597
echo "NEW - JENKINS USES A SEPARATE REPO FROM GITHUB ACTIONS"
96-
cp $GEN_SRC/jenkins/Jenkinsfile $JENKINS_BUILD/Jenkinsfile
97-
cp $GEN_GITOPS/jenkins/Jenkinsfile $JENKINS_GITOPS/Jenkinsfile
98-
updateGitAndQuayRefs $JENKINS_BUILD/Jenkinsfile
99-
updateGitAndQuayRefs $JENKINS_GITOPS/Jenkinsfile
98+
cp $GEN_SRC/jenkins/Jenkinsfile "$JENKINS_BUILD"/Jenkinsfile
99+
cp $GEN_GITOPS/jenkins/Jenkinsfile "$JENKINS_GITOPS"/Jenkinsfile
100+
updateGitAndQuayRefs "$JENKINS_BUILD"/Jenkinsfile
101+
updateGitAndQuayRefs "$JENKINS_GITOPS"/Jenkinsfile
100102

101103
# Gitlab CI
102104
echo "Update .gitlab-ci.yml file in $GITLAB_BUILD and $GITLAB_GITOPS"
103-
cp $GEN_SRC/gitlabci/.gitlab-ci.yml $GITLAB_BUILD/.gitlab-ci.yml
104-
cp $GEN_GITOPS/gitlabci/.gitlab-ci.yml $GITLAB_GITOPS/.gitlab-ci.yml
105-
updateGitAndQuayRefs $GITLAB_BUILD/.gitlab-ci.yml
106-
updateGitAndQuayRefs $GITLAB_GITOPS/.gitlab-ci.yml
105+
cp $GEN_SRC/gitlabci/.gitlab-ci.yml "$GITLAB_BUILD"/.gitlab-ci.yml
106+
cp $GEN_GITOPS/gitlabci/.gitlab-ci.yml "$GITLAB_GITOPS"/.gitlab-ci.yml
107+
updateGitAndQuayRefs "$GITLAB_BUILD"/.gitlab-ci.yml
108+
updateGitAndQuayRefs "$GITLAB_GITOPS"/.gitlab-ci.yml
107109

108110
# Github Actions
109111
echo "Update .github workflows in $BUILD and $GITOPS"
110-
cp -r $GEN_SRC/githubactions/.github $BUILD
111-
cp -r $GEN_GITOPS/githubactions/.github $GITOPS
112-
for wf in $BUILD/.github/workflows/* $GITOPS/.github/workflows/*; do
113-
updateGitAndQuayRefs $wf
112+
cp -r $GEN_SRC/githubactions/.github "$BUILD"
113+
cp -r $GEN_GITOPS/githubactions/.github "$GITOPS"
114+
for wf in "$BUILD"/.github/workflows/* "$GITOPS"/.github/workflows/*; do
115+
updateGitAndQuayRefs "$wf"
114116
done
115117

116118
function updateRepos() {
117119
REPO=$1
118120
echo
119121
echo "Updating $REPO"
120-
pushd $REPO
122+
pushd "$REPO"
121123
git add .
122124
git commit -m "Testing in CI"
123125
git push
@@ -127,30 +129,30 @@ function updateRepos() {
127129
# set secrets and then push to repos to ensure pipeline runs are
128130
# with correct values
129131
# github
130-
if [ $SKIP_SECRETS == "false" ]; then
131-
bash hack/ghub-set-vars $TEST_BUILD_REPO
132-
bash hack/ghub-set-vars $TEST_GITOPS_REPO
132+
if [ "$SKIP_SECRETS" == "false" ]; then
133+
bash hack/ghub-set-vars "$TEST_BUILD_REPO"
134+
bash hack/ghub-set-vars "$TEST_GITOPS_REPO"
133135
fi
134136

135-
updateRepos $BUILD
136-
updateRepos $GITOPS
137+
updateRepos "$BUILD"
138+
updateRepos "$GITOPS"
137139

138140
# gitlab
139-
if [ $SKIP_SECRETS == "false" ]; then
140-
bash hack/glab-set-vars $(basename $TEST_BUILD_GITLAB_REPO)
141-
bash hack/glab-set-vars $(basename $TEST_GITOPS_GITLAB_REPO)
141+
if [ "$SKIP_SECRETS" == "false" ]; then
142+
bash hack/glab-set-vars "$(basename "$TEST_BUILD_GITLAB_REPO")"
143+
bash hack/glab-set-vars "$(basename "$TEST_GITOPS_GITLAB_REPO")"
142144
fi
143-
updateRepos $GITLAB_BUILD
144-
updateRepos $GITLAB_GITOPS
145+
updateRepos "$GITLAB_BUILD"
146+
updateRepos "$GITLAB_GITOPS"
145147

146148
# Jenkins
147149
# note, jenkins secrets are global so set once"
148-
if [ $SKIP_SECRETS == "false" ]; then
150+
if [ "$SKIP_SECRETS" == "false" ]; then
149151
bash hack/jenkins-set-secrets
150152
fi
151-
updateRepos $JENKINS_BUILD
152-
updateRepos $JENKINS_GITOPS
153-
bash hack/jenkins-run-pipeline $(basename $TEST_BUILD_JENKINS_REPO)
153+
updateRepos "$JENKINS_BUILD"
154+
updateRepos "$JENKINS_GITOPS"
155+
bash hack/jenkins-run-pipeline "$(basename "$TEST_BUILD_JENKINS_REPO")"
154156

155157
echo
156158
echo "Github Build and Gitops Repos"

0 commit comments

Comments
 (0)