7575 # EVENT_ACTION: ${{ github.event.action }}
7676 EVENT_NAME : ${{ github.event_name }}
7777 IMAGE_TYPE : ${{ inputs.image_type }}
78- VERSION : ${{ inputs.version }}
7978
8079jobs :
8180 validate-inputs :
8281 runs-on : ubuntu-latest
8382 outputs :
83+ version : ${{ steps.validate_inputs.outputs.VERSION }}
84+ release_id : ${{ steps.validate_inputs.outputs.RELEASE_ID }}
8485 stable_tag : ${{ steps.validate_inputs.outputs.stable_tag }}
8586
8687 steps :
8788 - name : Checkout sources
88- uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
89+ uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
8990
9091 - name : Validate inputs
9192 id : validate_inputs
9293 run : |
9394 . ./.github/scripts/common/lib.sh
9495
9596 VERSION=$(filter_version_from_input "${{ inputs.version }}")
96- echo "VERSION=${VERSION}" >> $GITHUB_ENV
97+ echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
9798
9899 RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
99- echo "RELEASE_ID=${RELEASE_ID}" >> $GITHUB_ENV
100+ echo "RELEASE_ID=${RELEASE_ID}" >> $GITHUB_OUTPUT
101+
102+ echo "Release ID: $RELEASE_ID"
100103
101104 STABLE_TAG=$(validate_stable_tag ${{ inputs.stable_tag }})
102105 echo "stable_tag=${STABLE_TAG}" >> $GITHUB_OUTPUT
103106
104107 fetch-artifacts : # this job will be triggered for the polkadot-parachain rc and release or polkadot rc image build
105108 if : ${{ inputs.binary == 'polkadot-parachain' || inputs.binary == 'chain-spec-builder' || inputs.image_type == 'rc' }}
106109 runs-on : ubuntu-latest
110+ needs : [validate-inputs]
107111
108112 steps :
109113 - name : Checkout sources
110- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
114+ uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
111115
112116 # TODO: this step will be needed when automated triggering will work
113117 # this step runs only if the workflow is triggered automatically when new release is published
@@ -129,14 +133,23 @@ jobs:
129133 run : |
130134 . ./.github/scripts/common/lib.sh
131135
132- fetch_release_artifacts_from_s3
136+ VERSION="${{ needs.validate-inputs.outputs.VERSION }}"
137+ if [[ ${{ inputs.binary }} == 'polkadot' ]]; then
138+ bins=(polkadot polkadot-prepare-worker polkadot-execute-worker)
139+ for bin in "${bins[@]}"; do
140+ fetch_release_artifacts_from_s3 $bin
141+ done
142+ else
143+ fetch_release_artifacts_from_s3 $BINARY
144+ fi
133145
134146 - name : Fetch chain-spec-builder rc artifacts or release artifacts based on release id
135147 # this step runs only if the workflow is triggered manually and only for chain-spec-builder
136148 if : ${{ env.EVENT_NAME == 'workflow_dispatch' && inputs.binary == 'chain-spec-builder' }}
137149 run : |
138150 . ./.github/scripts/common/lib.sh
139151
152+ RELEASE_ID="${{ needs.validate-inputs.outputs.RELEASE_ID }}"
140153 fetch_release_artifacts
141154
142155 - name : Upload artifacts
@@ -153,7 +166,7 @@ jobs:
153166
154167 steps :
155168 - name : Checkout sources
156- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
169+ uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
157170
158171 - name : Download artifacts
159172 uses : actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
@@ -181,32 +194,45 @@ jobs:
181194 run : |
182195 . ./.github/scripts/common/lib.sh
183196
184- RELEASE_ID=$(check_release_id "${{ inputs.release_id }}")
185- release=release-$RELEASE_ID && \
186- echo "release=${release}" >> $GITHUB_OUTPUT
197+ echo "release=${{ needs.validate-inputs.outputs.stable_tag }}" >> $GITHUB_OUTPUT
187198
188199 commit=$(git rev-parse --short HEAD) && \
189200 echo "commit=${commit}" >> $GITHUB_OUTPUT
190201
191- tag=$(git name-rev --tags --name-only $(git rev-parse HEAD)) && \
192- [ "${tag}" != "undefined" ] && echo "tag=${tag}" >> $GITHUB_OUTPUT || \
193- echo "No tag, doing without"
202+ echo "tag=${{ needs.validate-inputs.outputs.version }}" >> $GITHUB_OUTPUT
194203
195204 - name : Fetch release tags
196205 working-directory : release-artifacts
197206 if : ${{ env.IMAGE_TYPE == 'release'}}
198207 id : fetch_release_refs
199208 run : |
200209 chmod a+rx $BINARY
201- [[ $BINARY != 'chain-spec-builder' ]] && VERSION=$(./$BINARY --version | awk '{ print $2 }' )
202210
203- release=$( echo $VERSION | cut -f1 -d- )
211+ if [[ $BINARY != 'chain-spec-builder' ]]; then
212+ VERSION=$(./$BINARY --version | awk '{ print $2 }' )
213+ release=$( echo $VERSION | cut -f1 -d- )
214+ else
215+ release=$(echo ${{ needs.validate-inputs.outputs.VERSION }} | sed 's/^v//')
216+ fi
217+
204218 echo "tag=latest" >> $GITHUB_OUTPUT
205219 echo "release=${release}" >> $GITHUB_OUTPUT
206220 echo "stable=${{ needs.validate-inputs.outputs.stable_tag }}" >> $GITHUB_OUTPUT
207221
208- - name : Build Injected Container image for polkadot rc or chain-spec-builder
209- if : ${{ env.BINARY == 'polkadot' || env.BINARY == 'chain-spec-builder' }}
222+ - name : Build Injected Container image for polkadot rc
223+ if : ${{ env.BINARY == 'polkadot' }}
224+ env :
225+ ARTIFACTS_FOLDER : release-artifacts
226+ IMAGE_NAME : ${{ env.BINARY }}
227+ OWNER : ${{ env.DOCKER_OWNER }}
228+ TAGS : ${{ join(steps.fetch_rc_refs.outputs.*, ',') || join(steps.fetch_release_refs.outputs.*, ',') }}
229+ run : |
230+ ls -al
231+ echo "Building container for $BINARY"
232+ ./docker/scripts/polkadot/build-injected.sh $ARTIFACTS_FOLDER
233+
234+ - name : Build Injected Container image chain-spec-builder
235+ if : ${{ env.BINARY == 'chain-spec-builder' }}
210236 env :
211237 ARTIFACTS_FOLDER : release-artifacts
212238 IMAGE_NAME : ${{ env.BINARY }}
@@ -233,8 +259,16 @@ jobs:
233259 echo "Building container for $BINARY"
234260 ./docker/scripts/build-injected.sh
235261
236- - name : Login to Dockerhub
237- uses : docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
262+ - name : Login to Dockerhub to publish polkadot
263+ if : ${{ env.BINARY == 'polkadot' }}
264+ uses : docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
265+ with :
266+ username : ${{ secrets.POLKADOT_DOCKERHUB_USERNAME }}
267+ password : ${{ secrets.POLKADOT_DOCKERHUB_TOKEN }}
268+
269+ - name : Login to Dockerhub to puiblish polkadot-parachain/chain-spec-builder
270+ if : ${{ env.BINARY == 'polkadot-parachain' || env.BINARY == 'chain-spec-builder' }}
271+ uses : docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
238272 with :
239273 username : ${{ secrets.CUMULUS_DOCKERHUB_USERNAME }}
240274 password : ${{ secrets.CUMULUS_DOCKERHUB_TOKEN }}
@@ -285,7 +319,7 @@ jobs:
285319 environment : release
286320 steps :
287321 - name : Checkout sources
288- uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
322+ uses : actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
289323
290324 - name : Set up Docker Buildx
291325 uses : docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
0 commit comments