15
15
IMAGE_REGISTRY : ${{ secrets.IMAGE_REGISTRY }}
16
16
17
17
# Used to verify the image signature and attestation
18
- COSIGN_PUBLIC_KEY : ${{ secrets .COSIGN_PUBLIC_KEY }}
18
+ COSIGN_PUBLIC_KEY : ${{ vars .COSIGN_PUBLIC_KEY }}
19
19
# URL of the BOMbastic api host (e.g. https://sbom.trustification.dev)
20
- TRUSTIFICATION_BOMBASTIC_API_URL : ${{ secrets .TRUSTIFICATION_BOMBASTIC_API_URL }}
20
+ TRUSTIFICATION_BOMBASTIC_API_URL : ${{ vars .TRUSTIFICATION_BOMBASTIC_API_URL }}
21
21
# URL of the OIDC token issuer (e.g. https://sso.trustification.dev/realms/chicken)
22
- TRUSTIFICATION_OIDC_ISSUER_URL : ${{ secrets.TRUSTIFICATION_OIDC_ISSUER_URL }}
23
- TRUSTIFICATION_OIDC_CLIENT_ID : ${{ secrets.TRUSTIFICATION_OIDC_CLIENT_ID }}
24
- TRUSTIFICATION_OIDC_CLIENT_SECRET : ${{ secrets.TRUSTIFICATION_OIDC_CLIENT_SECRET }}
25
- TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION : ${{ secrets.TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION }}
22
+ TRUSTIFICATION_OIDC_ISSUER_URL : ${{ vars.TRUSTIFICATION_OIDC_ISSUER_URL }}
23
+ TRUSTIFICATION_OIDC_CLIENT_ID : ${{ vars.TRUSTIFICATION_OIDC_CLIENT_ID }}
24
+ TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION : ${{ vars.TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION }}
26
25
# Set this to the user for your specific registry
27
- IMAGE_REGISTRY_USER : ${{ secrets.IMAGE_REGISTRY_USER }}
28
- # Set this password for your specific registry
29
- IMAGE_REGISTRY_PASSWORD : ${{ secrets.IMAGE_REGISTRY_PASSWORD }}
26
+ IMAGE_REGISTRY_USER : ${{ vars.IMAGE_REGISTRY_USER }}
30
27
# Set this only when using an external Rekor instance
31
- # REKOR_HOST: ${{ secrets .REKOR_HOST }}
28
+ REKOR_HOST : ${{ vars .REKOR_HOST }}
32
29
# Set this only when using an external TUF instance
33
- # TUF_MIRROR: ${{ secrets.TUF_MIRROR }}
34
- # QUAY_IO_CREDS_USR: ${{ secrets.QUAY_IO_CREDS_USR }}
30
+ TUF_MIRROR : ${{ vars.TUF_MIRROR }}
31
+ # QUAY_IO_CREDS_USR: ${{ vars.QUAY_IO_CREDS_USR }}
32
+ # ARTIFACTORY_IO_CREDS_USR: ${{ vars.ARTIFACTORY_IO_CREDS_USR }}
33
+ # NEXUS_IO_CREDS_USR: ${{ vars.NEXUS_IO_CREDS_USR }}
34
+ # Secrets
35
+ TRUSTIFICATION_OIDC_CLIENT_SECRET : ${{ secrets.TRUSTIFICATION_OIDC_CLIENT_SECRET }}
36
+ # Set this password for your specific registry
37
+ IMAGE_REGISTRY_PASSWORD : ${{ secrets.IMAGE_REGISTRY_PASSWORD }}
35
38
# QUAY_IO_CREDS_PSW: ${{ secrets.QUAY_IO_CREDS_PSW }}
36
- # ARTIFACTORY_IO_CREDS_USR: ${{ secrets.ARTIFACTORY_IO_CREDS_USR }}
37
39
# ARTIFACTORY_IO_CREDS_PSW: ${{ secrets.ARTIFACTORY_IO_CREDS_PSW }}
38
- # NEXUS_IO_CREDS_USR: ${{ secrets.NEXUS_IO_CREDS_USR }}
39
40
# NEXUS_IO_CREDS_PSW: ${{ secrets.NEXUS_IO_CREDS_PSW }}
41
+
40
42
41
43
# 🖊️ EDIT to specify custom tags for the container image, or default tags will be generated below.
42
44
IMAGE_TAGS : " "
@@ -60,33 +62,47 @@ jobs:
60
62
uses : actions/github-script@v7
61
63
with :
62
64
script : |
63
- const secrets = {
64
- IMAGE_REGISTRY: `${{ secrets .IMAGE_REGISTRY }}`,
65
+ const vars = {
66
+ IMAGE_REGISTRY: `${{ vars .IMAGE_REGISTRY }}`,
65
67
66
68
/* Used to verify the image signature and attestation */
67
- COSIGN_PUBLIC_KEY: `${{ secrets .COSIGN_PUBLIC_KEY }}`,
69
+ COSIGN_PUBLIC_KEY: `${{ vars .COSIGN_PUBLIC_KEY }}`,
68
70
/* URL of the BOMbastic api host (e.g. https://sbom.trustification.dev) */
69
- TRUSTIFICATION_BOMBASTIC_API_URL: `${{ secrets .TRUSTIFICATION_BOMBASTIC_API_URL }}`,
71
+ TRUSTIFICATION_BOMBASTIC_API_URL: `${{ vars .TRUSTIFICATION_BOMBASTIC_API_URL }}`,
70
72
/* URL of the OIDC token issuer (e.g. https://sso.trustification.dev/realms/chicken) */
71
- TRUSTIFICATION_OIDC_ISSUER_URL: `${{ secrets.TRUSTIFICATION_OIDC_ISSUER_URL }}`,
72
- TRUSTIFICATION_OIDC_CLIENT_ID: `${{ secrets.TRUSTIFICATION_OIDC_CLIENT_ID }}`,
73
- TRUSTIFICATION_OIDC_CLIENT_SECRET: `${{ secrets.TRUSTIFICATION_OIDC_CLIENT_SECRET }}`,
74
- TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION: `${{ secrets.TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION }}`,
73
+ TRUSTIFICATION_OIDC_ISSUER_URL: `${{ vars.TRUSTIFICATION_OIDC_ISSUER_URL }}`,
74
+ TRUSTIFICATION_OIDC_CLIENT_ID: `${{ vars.TRUSTIFICATION_OIDC_CLIENT_ID }}`,
75
+ TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION: `${{ vars.TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION }}`,
75
76
/* Set this to the user for your specific registry */
76
- IMAGE_REGISTRY_USER: `${{ secrets.IMAGE_REGISTRY_USER }}`,
77
- /* Set this password for your specific registry */
78
- IMAGE_REGISTRY_PASSWORD: `${{ secrets.IMAGE_REGISTRY_PASSWORD }}`,
77
+ IMAGE_REGISTRY_USER: `${{ vars.IMAGE_REGISTRY_USER }}`,
79
78
/* Set this only when using an external Rekor instance */
80
- /* REKOR_HOST: `${{ secrets .REKOR_HOST }}`, */
79
+ REKOR_HOST: `${{ vars .REKOR_HOST }}`,
81
80
/* Set this only when using an external TUF instance */
82
- /*TUF_MIRROR: `${{ secrets.TUF_MIRROR }}`, */
83
- /*QUAY_IO_CREDS_USR: `${{ secrets.QUAY_IO_CREDS_USR }}`, */
81
+ TUF_MIRROR: `${{ vars.TUF_MIRROR }}`,
82
+ /*QUAY_IO_CREDS_USR: `${{ vars.QUAY_IO_CREDS_USR }}`, */
83
+ /*ARTIFACTORY_IO_CREDS_USR: `${{ vars.ARTIFACTORY_IO_CREDS_USR }}`, */
84
+ /*NEXUS_IO_CREDS_USR: `${{ vars.NEXUS_IO_CREDS_USR }}`, */
85
+ };
86
+
87
+ const missingVars = Object.entries(vars).filter(([ name, value ]) => {
88
+ if (value.length === 0) {
89
+ core.error(`Variable "${name}" is not set`);
90
+ return true;
91
+ }
92
+ core.info(`✔️ Variable "${name}" is set`);
93
+ return false;
94
+ });
95
+
96
+ const secrets = {
97
+
98
+ TRUSTIFICATION_OIDC_CLIENT_SECRET: `${{ secrets.TRUSTIFICATION_OIDC_CLIENT_SECRET }}`,
99
+ /* Set this password for your specific registry */
100
+ IMAGE_REGISTRY_PASSWORD: `${{ secrets.IMAGE_REGISTRY_PASSWORD }}`,
84
101
/*QUAY_IO_CREDS_PSW: `${{ secrets.QUAY_IO_CREDS_PSW }}`, */
85
- /*ARTIFACTORY_IO_CREDS_USR: `${{ secrets.ARTIFACTORY_IO_CREDS_USR }}`, */
86
102
/*ARTIFACTORY_IO_CREDS_PSW: `${{ secrets.ARTIFACTORY_IO_CREDS_PSW }}`, */
87
- /*NEXUS_IO_CREDS_USR: `${{ secrets.NEXUS_IO_CREDS_USR }}`, */
88
103
/*NEXUS_IO_CREDS_PSW: `${{ secrets.NEXUS_IO_CREDS_PSW }}`, */
89
104
};
105
+
90
106
const missingSecrets = Object.entries(secrets).filter(([ name, value ]) => {
91
107
if (value.length === 0) {
92
108
core.error(`Secret "${name}" is not set`);
@@ -95,15 +111,27 @@ jobs:
95
111
core.info(`✔️ Secret "${name}" is set`);
96
112
return false;
97
113
});
114
+
115
+ if (missingVars.length > 0) {
116
+ core.error(`❌ At least one required variable is not set in the repository. \n` +
117
+ "You can add it using:\n" +
118
+ "GitHub UI: https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables#creating-configuration-variables-for-a-repository \n" +
119
+ "GitHub CLI: https://cli.github.com/manual/gh_variable_set \n" +
120
+ "Also, refer to https://github.com/redhat-actions/oc-login#getting-started-with-the-action-or-see-example");
121
+ }
122
+
98
123
if (missingSecrets.length > 0) {
99
- core.setFailed (`❌ At least one required secret is not set in the repository. \n` +
124
+ core.error (`❌ At least one required secret is not set in the repository. \n` +
100
125
"You can add it using:\n" +
101
126
"GitHub UI: https://docs.github.com/en/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository \n" +
102
127
"GitHub CLI: https://cli.github.com/manual/gh_secret_set \n" +
103
128
"Also, refer to https://github.com/redhat-actions/oc-login#getting-started-with-the-action-or-see-example");
104
129
}
105
- else {
106
- core.info(`✅ All the required secrets are set`);
130
+
131
+ if (missingVars.length > 0 || missingSecrets.length > 0) {
132
+ core.setFailed()
133
+ } else {
134
+ core.info(`✅ All the required variables and secrets are set`);
107
135
}
108
136
- name : Check out repository
109
137
uses : actions/checkout@v4
0 commit comments