8989 shell : bash
9090 run : ibmcloud plugin install code-engine container-registry
9191
92+ - name : Set short SHA to use as image tag
93+ shell : bash
94+ run : echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
95+
9296 # Select or create Code Engine Project
9397 - name : Select Code Engine Project
9498 id : select_code_engine_project
@@ -106,52 +110,48 @@ runs:
106110 run : |
107111 if [[ -n "${{ inputs.registry_namespace }}" && "${{ inputs.registry_image }}" ]] ; then
108112 ibmcloud cr login
109- echo "endpoint= $(ibmcloud cr region | grep -i 'icr.io' | cut -d "'" -f4)" >> "$GITHUB_ENV "
113+ echo "registry_image=--image private. $(ibmcloud cr region | grep -i 'icr.io' | cut -d "'" -f4)/${{ inputs.registry_namespace }}/${{ inputs.registry_image }}:${{ env.SHORT_SHA }} " >> "$GITHUB_OUTPUT "
110114 else
111- echo "endpoint =" >> "$GITHUB_ENV "
115+ echo "registry_image =" >> "$GITHUB_OUTPUT "
112116 fi
113117
114- - name : Set short SHA
118+ - name : Create or use Code Engine registry secret
115119 shell : bash
116- run : echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV
120+ id : cr_secret
121+ run : |
122+ if ibmcloud ce secret get --name "${{ inputs.workload_name }}-ce-cr-secret" > /dev/null 2>&1; then
123+ echo "registry_secret=--registry-secret ${{ inputs.workload_name }}-ce-cr-secret" >> "$GITHUB_OUTPUT"
124+ else
125+ ibmcloud ce registry create --name ${{ inputs.workload_name }}-ce-cr-secret --username iamapikey --password ${{ inputs.ibmcloud_api_key }} --server ${{ env.ICR_ENDPOINT }} --email githubaction@example.com
117126
118- # if ibmcloud ce secret get --name "${{ inputs.workload_name }}-ce-cr-secret" > /dev/null 2>&1; then
119- # echo "registry_secret=--registry-secret ${{ inputs.workload_name }}-ce-cr-secret" >> "$GITHUB_OUTPUT"
120- # else
121- # ibmcloud ce registry create --name ${{ inputs.workload_name }}-ce-cr-secret --username iamapikey --password ${{ inputs.ibmcloud_api_key }} --server $endpoint --email githubaction@example.com
122- # echo "registry_secret=--registry-secret ${{ inputs.workload_name }}-ce-cr-secret" >> "$GITHUB_OUTPUT"
123- # fi
127+ echo "registry_secret=--registry-secret ${{ inputs.workload_name }}-ce-cr-secret" >> "$GITHUB_OUTPUT"
128+ fi
124129
125- - name : show outputs
130+ # Set cpu, memory, and custom arg defaults for workloads
131+ - name : Set workload resources
132+ id : set_workload_resources
126133 shell : bash
127134 run : |
128- echo ${{ steps.login_to_cr.outputs.endpoint }}
129-
130- # # Set cpu, memory, and custom arg defaults for workloads
131- # - name: Set workload resources
132- # id: set_workload_resources
133- # shell: bash
134- # run: |
135- # # set the CPU value
136- # if [[ "${{ inputs.workload_cpu }}" != "" ]] ; then
137- # echo "workload_cpu=--cpu ${{ inputs.workload_cpu }}" >> "$GITHUB_OUTPUT"
138- # else
139- # echo "workload_cpu=" >> "$GITHUB_OUTPUT"
140- # fi
135+ # set the CPU value
136+ if [[ "${{ inputs.workload_cpu }}" != "" ]] ; then
137+ echo "workload_cpu=--cpu ${{ inputs.workload_cpu }}" >> "$GITHUB_OUTPUT"
138+ else
139+ echo "workload_cpu=" >> "$GITHUB_OUTPUT"
140+ fi
141141
142- # # set the memory value
143- # if [[ "${{ inputs.workload_memory }}" != "" ]] ; then
144- # echo "workload_memory=--memory ${{ inputs.workload_memory }}" >> "$GITHUB_OUTPUT"
145- # else
146- # echo "workload_memory=" >> "$GITHUB_OUTPUT"
147- # fi
142+ # set the memory value
143+ if [[ "${{ inputs.workload_memory }}" != "" ]] ; then
144+ echo "workload_memory=--memory ${{ inputs.workload_memory }}" >> "$GITHUB_OUTPUT"
145+ else
146+ echo "workload_memory=" >> "$GITHUB_OUTPUT"
147+ fi
148148
149- # # set the arg value
150- # if [[ "${{ inputs.workload_arg }}" != "" ]] ; then
151- # echo "workload_arg=--arg ${{ inputs.workload_arg }}" >> "$GITHUB_OUTPUT"
152- # else
153- # echo "workload_arg=" >> "$GITHUB_OUTPUT"
154- # fi
149+ # set the arg value
150+ if [[ "${{ inputs.workload_arg }}" != "" ]] ; then
151+ echo "workload_arg=--arg ${{ inputs.workload_arg }}" >> "$GITHUB_OUTPUT"
152+ else
153+ echo "workload_arg=" >> "$GITHUB_OUTPUT"
154+ fi
155155
156156 # # Functions deployment or update steps
157157 # - name: Create or update code engine serverless function
@@ -167,17 +167,17 @@ runs:
167167 # fi
168168
169169 # # Application deployment or update steps
170- # - name: Create or update code engine application
171- # shell: bash
172- # id: ce-app
173- # if: ( inputs.workload_type == 'application' || inputs.workload_type == 'app' )
174- # run: |
170+ - name : Create or update code engine application
171+ shell : bash
172+ id : ce-app
173+ if : ( inputs.workload_type == 'application' || inputs.workload_type == 'app' )
174+ run : |
175175
176- # if ibmcloud ce application get --name ${{ inputs.workload_name }} ; then
177- # ibmcloud ce application update --name ${{ inputs.workload_name }} --build-source ${{ inputs.build_source }} ${{ steps.set_workload_resources.outputs.workload_cpu }} ${{ steps.set_workload_resources.outputs.workload_memory }} --port ${{ inputs.workload_port }} ${{ steps.set_workload_resources.outputs.workload_arg }} ${{ steps.login_to_cr.outputs.workload_image }} ${{ steps.login_to_cr .outputs.registry_secret }}
178- # else
179- # ibmcloud ce application create --name ${{ inputs.workload_name }} --build-source ${{ inputs.build_source }} ${{ steps.set_workload_resources.outputs.workload_cpu }} ${{ steps.set_workload_resources.outputs.workload_memory }} ${{ steps.set_workload_resources.outputs.workload_arg }} ${{ steps.login_to_cr.outputs.workload_image }} ${{ steps.login_to_cr .outputs.registry_secret }}
180- # fi
176+ if ibmcloud ce application get --name ${{ inputs.workload_name }} ; then
177+ ibmcloud ce application update --name ${{ inputs.workload_name }} --build-source ${{ inputs.build_source }} ${{ steps.set_workload_resources.outputs.workload_cpu }} ${{ steps.set_workload_resources.outputs.workload_memory }} --port ${{ inputs.workload_port }} ${{ steps.set_workload_resources.outputs.workload_arg }} ${{ steps.login_to_cr.outputs.registry_image }} ${{ steps.cr_secret .outputs.registry_secret }}
178+ else
179+ ibmcloud ce application create --name ${{ inputs.workload_name }} --build-source ${{ inputs.build_source }} ${{ steps.set_workload_resources.outputs.workload_cpu }} ${{ steps.set_workload_resources.outputs.workload_memory }} ${{ steps.set_workload_resources.outputs.workload_arg }} ${{ steps.login_to_cr.outputs.registry_image }} ${{ steps.cr_secret .outputs.registry_secret }}
180+ fi
181181
182182 # # Job deployment or update steps
183183 # - name: Create or update code engine job
0 commit comments