on master help sign in
CICD: Build: Use package-specific staging dir

A common staging dir confuses more than it helps, so let each package step take care of its own staging dir. For #1474

commit0e5ea9c354509ecc408cf0f40bf9d5ef6b62f9f0 authorMartin Nordholts <enselic@gmail.com> dateTue 12 Jan 2021, 21:33 (6 years ago) parent7eabb5e
1 file changed+19−12
.github/workflows/CICD.yml+19−12
.github/workflows/CICD.yml+19−12
@@ -2,6 +2,7 @@ name: CICD
22
33env:
44 MIN_SUPPORTED_RUST_VERSION: "1.42.0"
5+ CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
56
67on: [push, pull_request]
78
@@ -113,9 +114,6 @@ jobs:
113114 id: vars
114115 shell: bash
115116 run: |
116− # staging directory
117− STAGING='_staging'
118− echo ::set-output name=STAGING::${STAGING}
119117 unset IS_RELEASE ; if [[ $GITHUB_REF =~ ^refs/tags/v[0-9].* ]]; then IS_RELEASE='true' ; fi
120118 echo ::set-output name=IS_RELEASE::${IS_RELEASE}
121119 # target-specific options
@@ -164,7 +162,7 @@ jobs:
164162 esac;
165163
166164 # Setup paths
167− BIN_DIR="_cicd-intermediates/stripped-release-bin/"
165+ BIN_DIR="${{ env.CICD_INTERMEDIATES_DIR }}/stripped-release-bin/"
168166 mkdir -p "${BIN_DIR}"
169167 BIN_NAME="${{ env.PROJECT_NAME }}${EXE_suffix}"
170168 BIN_PATH="${BIN_DIR}/${BIN_NAME}"
@@ -231,7 +229,8 @@ jobs:
231229 PKG_NAME=${PKG_BASENAME}${PKG_suffix}
232230 echo ::set-output name=PKG_NAME::${PKG_NAME}
233231
234− ARCHIVE_DIR="${{ steps.vars.outputs.STAGING }}/${PKG_BASENAME}/"
232+ PKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/package"
233+ ARCHIVE_DIR="${PKG_STAGING}/${PKG_BASENAME}/"
235234 mkdir -p "${ARCHIVE_DIR}"
236235 mkdir -p "${ARCHIVE_DIR}/autocomplete"
237236
@@ -249,19 +248,23 @@ jobs:
249248 cp 'target/${{ matrix.job.target }}/release/build/${{ env.PROJECT_NAME }}'-*/out/assets/completions/bat.zsh "$ARCHIVE_DIR/autocomplete/${{ env.PROJECT_NAME }}.zsh"
250249
251250 # base compressed package
252− pushd '${{ steps.vars.outputs.STAGING }}/' >/dev/null
251+ pushd "${PKG_STAGING}/" >/dev/null
253252 case ${{ matrix.job.target }} in
254253 *-pc-windows-*) 7z -y a "${PKG_NAME}" "${PKG_BASENAME}"/* | tail -2 ;;
255254 *) tar czf "${PKG_NAME}" "${PKG_BASENAME}"/* ;;
256255 esac;
257256 popd >/dev/null
257+
258+ # Let subsequent steps know where to find the compressed package
259+ echo ::set-output name=PKG_PATH::"${PKG_STAGING}/${PKG_NAME}"
258260 - name: Debian package
259261 id: debian-package
260262 shell: bash
261263 if: startsWith(matrix.job.os, 'ubuntu')
262264 run: |
263265 COPYRIGHT_YEARS="2018 - "$(date "+%Y")
264− DPKG_DIR="${{ steps.vars.outputs.STAGING }}/dpkg"
266+ DPKG_STAGING="${{ env.CICD_INTERMEDIATES_DIR }}/debian-package"
267+ DPKG_DIR="${DPKG_STAGING}/dpkg"
265268 mkdir -p "${DPKG_DIR}"
266269
267270 DPKG_BASENAME=${PROJECT_NAME}
@@ -356,26 +359,30 @@ jobs:
356359 A cat(1) clone with syntax highlighting and Git integration.
357360 EOF
358361
362+ DPKG_PATH="${DPKG_STAGING}/${DPKG_NAME}"
363+ echo ::set-output name=DPKG_PATH::${DPKG_PATH}
364+
359365 # build dpkg
360− fakeroot dpkg-deb --build "${DPKG_DIR}" "${{ steps.vars.outputs.STAGING }}/${DPKG_NAME}"
366+ fakeroot dpkg-deb --build "${DPKG_DIR}" "${DPKG_PATH}"
367+
361368 - name: Upload package artifact
362369 uses: actions/upload-artifact@master
363370 with:
364371 name: ${{ steps.package.outputs.PKG_NAME }}
365− path: ${{ steps.vars.outputs.STAGING }}/${{ steps.package.outputs.PKG_NAME }}
372+ path: ${{ steps.package.outputs.PKG_PATH }}
366373 - name: Upload Debian package artifact
367374 uses: actions/upload-artifact@master
368375 if: steps.debian-package.outputs.DPKG_NAME
369376 with:
370377 name: ${{ steps.debian-package.outputs.DPKG_NAME }}
371− path: ${{ steps.vars.outputs.STAGING }}/${{ steps.debian-package.outputs.DPKG_NAME }}
378+ path: ${{ steps.debian-package.outputs.DPKG_PATH }}
372379 - name: Publish archives and packages
373380 uses: softprops/action-gh-release@v1
374381 if: steps.vars.outputs.IS_RELEASE
375382 with:
376383 files: |
377− ${{ steps.vars.outputs.STAGING }}/${{ steps.package.outputs.PKG_NAME }}
378− ${{ steps.vars.outputs.STAGING }}/${{ steps.debian-package.outputs.DPKG_NAME }}
384+ ${{ steps.package.outputs.PKG_PATH }}
385+ ${{ steps.debian-package.outputs.DPKG_PATH }}
379386 env:
380387 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
381388