1212
1313env :
1414 REGISTRY : ghcr.io
15- NAMESPACE : galasa-dev
15+ NAMESPACE : ${{ github.repository_owner }}
1616 BRANCH : ${{ github.ref_name }}
1717
1818jobs :
2424 run : |
2525 echo "This workflow is running on GitHub ref ${{ env.BRANCH }}"
2626
27+ check-required-secrets-configured :
28+ name : Check required secrets configured
29+ uses : galasa-dev/galasa/.github/workflows/check-required-secrets-configured.yaml@main
30+ with :
31+ check_write_github_packages_username : ' true'
32+ check_write_github_packages_token : ' true'
33+ secrets :
34+ WRITE_GITHUB_PACKAGES_USERNAME : ${{ secrets.WRITE_GITHUB_PACKAGES_USERNAME }}
35+ WRITE_GITHUB_PACKAGES_TOKEN : ${{ secrets.WRITE_GITHUB_PACKAGES_TOKEN }}
36+
2737 build-cli :
2838 name : Build the Galasa CLI
2939 runs-on : ubuntu-latest
40+ needs : check-required-secrets-configured
3041
3142 steps :
3243 - name : Checkout CLI
5970 # Generate client code so galasactl can communicate with the API server.
6071 - name : Generate Go client code using openapi.yaml
6172 run : |
62- docker run --rm --user $(id -u):$(id -g) -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main java -jar /opt/openapi/openapi-generator-cli.jar generate -i /var/workspace/build/dependencies/openapi.yaml -g go -o /var/workspace/pkg/galasaapi --additional-properties=packageName=galasaapi --global-property=apiTests=false
73+ docker run --rm --user $(id -u):$(id -g) -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main \
74+ java -jar /opt/openapi/openapi-generator-cli.jar generate \
75+ -i /var/workspace/build/dependencies/openapi.yaml \
76+ -g go \
77+ -o /var/workspace/pkg/galasaapi \
78+ --additional-properties=packageName=galasaapi \
79+ --global-property=apiTests=false
6380
6481 # The generated code needs adjustment for various reasons.
6582 - name : Fix generated code
@@ -72,11 +89,13 @@ jobs:
7289
7390 - name : Clear go.mod
7491 run : |
75- docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main rm /var/workspace/pkg/galasaapi/go.mod
92+ docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main \
93+ rm /var/workspace/pkg/galasaapi/go.mod
7694
7795 - name : Clear go.sum
7896 run : |
79- docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main rm /var/workspace/pkg/galasaapi/go.sum
97+ docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/openapi:main \
98+ rm /var/workspace/pkg/galasaapi/go.sum
8099
81100 # The go code needs to know which version of Galasa it is part of, so substitute an eye-catcher with the correct value.
82101 - name : Update version
@@ -120,10 +139,13 @@ jobs:
120139
121140 - name : Login to Github Container Registry
122141 uses : docker/login-action@v3
142+ env :
143+ WRITE_GITHUB_PACKAGES_USERNAME : ${{ secrets.WRITE_GITHUB_PACKAGES_USERNAME }}
144+ WRITE_GITHUB_PACKAGES_TOKEN : ${{ secrets.WRITE_GITHUB_PACKAGES_TOKEN }}
123145 with :
124146 registry : ${{ env.REGISTRY }}
125- username : ${{ secrets .WRITE_GITHUB_PACKAGES_USERNAME }}
126- password : ${{ secrets .WRITE_GITHUB_PACKAGES_TOKEN }}
147+ username : ${{ env .WRITE_GITHUB_PACKAGES_USERNAME }}
148+ password : ${{ env .WRITE_GITHUB_PACKAGES_TOKEN }}
127149
128150 - name : Extract metadata for galasactl image
129151 id : metadata-galasactl
@@ -179,18 +201,28 @@ jobs:
179201 labels : ${{ steps.metadata-galasactl-executables.outputs.labels }}
180202
181203 - name : Recycle application in ArgoCD
204+ # Skip this step for forks
205+ if : ${{ github.repository_owner == 'galasa-dev' }}
182206 env :
183- ARGOCD_AUTH_TOKEN : ${{ secrets.ARGOCD_TOKEN }}
207+ ARGOCD_AUTH_TOKEN : ${{ secrets.ARGOCD_TOKEN }}
184208 run : |
185- docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app actions run ${{ env.BRANCH }}-cli restart --kind Deployment --resource-name cli-${{ env.BRANCH }} --server argocd.galasa.dev
209+ docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace \
210+ ghcr.io/galasa-dev/argocdcli:main app actions run ${{ env.BRANCH }}-cli restart \
211+ --kind Deployment --resource-name cli-${{ env.BRANCH }} --server argocd.galasa.dev
186212
187213 - name : Wait for application health in ArgoCD
214+ # Skip this step for forks
215+ if : ${{ github.repository_owner == 'galasa-dev' }}
188216 env :
189- ARGOCD_AUTH_TOKEN : ${{ secrets.ARGOCD_TOKEN }}
217+ ARGOCD_AUTH_TOKEN : ${{ secrets.ARGOCD_TOKEN }}
190218 run : |
191- docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/argocdcli:main app wait ${{ env.BRANCH }}-cli --resource apps:Deployment:cli-${{ env.BRANCH }} --health --server argocd.galasa.dev
219+ docker run --env ARGOCD_AUTH_TOKEN=${{ env.ARGOCD_AUTH_TOKEN }} --rm -v ${{ github.workspace }}:/var/workspace \
220+ ghcr.io/galasa-dev/argocdcli:main app wait ${{ env.BRANCH }}-cli \
221+ --resource apps:Deployment:cli-${{ env.BRANCH }} --health --server argocd.galasa.dev
192222
193223 build-galasactl-ibm-testing-image-and-trigger-tekton-pipeline :
224+ # Skip this job for forks
225+ if : ${{ github.repository_owner == 'galasa-dev' }}
194226 name : Build image containing galasactl, OpenJDK and Gradle for testing
195227 runs-on : ubuntu-latest
196228 needs : build-cli
@@ -201,10 +233,13 @@ jobs:
201233
202234 - name : Login to Github Container Registry
203235 uses : docker/login-action@v3
236+ env :
237+ WRITE_GITHUB_PACKAGES_USERNAME : ${{ secrets.WRITE_GITHUB_PACKAGES_USERNAME }}
238+ WRITE_GITHUB_PACKAGES_TOKEN : ${{ secrets.WRITE_GITHUB_PACKAGES_TOKEN }}
204239 with :
205240 registry : ${{ env.REGISTRY }}
206- username : ${{ secrets .WRITE_GITHUB_PACKAGES_USERNAME }}
207- password : ${{ secrets .WRITE_GITHUB_PACKAGES_TOKEN }}
241+ username : ${{ env .WRITE_GITHUB_PACKAGES_USERNAME }}
242+ password : ${{ env .WRITE_GITHUB_PACKAGES_TOKEN }}
208243
209244 - name : Extract metadata for galasactl-ibm-testing image
210245 id : meta
@@ -229,14 +264,17 @@ jobs:
229264 echo "The Tekton pipeline test-cli-ecosystem-commands should be triggered in the next 2-minutes - check the Tekton dashboard"
230265
231266 report-failure :
267+ # Skip this job for forks
268+ if : ${{ failure() && github.repository_owner == 'galasa-dev' }}
232269 name : Report failure in workflow
233270 runs-on : ubuntu-latest
234271 needs : [log-github-ref, build-cli, build-galasactl-ibm-testing-image-and-trigger-tekton-pipeline]
235- if : failure()
236272
237273 steps :
238274 - name : Report failure in workflow to Slack
239275 env :
240276 SLACK_WEBHOOK : ${{ secrets.SLACK_WEBHOOK }}
241277 run : |
242- docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/galasabld-ibm:main slackpost workflows --repo "cli" --workflowName "${{ github.workflow }}" --workflowRunNum "${{ github.run_id }}" --ref "${{ env.BRANCH }}" --hook "${{ env.SLACK_WEBHOOK }}"
278+ docker run --rm -v ${{ github.workspace }}:/var/workspace ghcr.io/galasa-dev/galasabld-ibm:main slackpost workflows \
279+ --repo "cli" --workflowName "${{ github.workflow }}" --workflowRunNum "${{ github.run_id }}" \
280+ --ref "${{ env.BRANCH }}" --hook "${{ env.SLACK_WEBHOOK }}"
0 commit comments