1515 type : boolean
1616 default : true
1717
18+ env :
19+ NFPM_VERSION : " 2.43.1"
20+
1821concurrency :
1922 # make publishing release concurrent (but others trigger not)
2023 group : building-releases-${{ inputs.publish-release && 'prerelease' || github.run_id }}
@@ -194,6 +197,8 @@ jobs:
194197
195198 make-tarball-rhel :
196199 runs-on : ubuntu-latest
200+ # temporarily disable due to unavailability of latest deno in conda-forge
201+ if : false
197202 needs : [configure]
198203 steps :
199204 - uses : actions/checkout@v4
@@ -240,9 +245,13 @@ jobs:
240245 name : RHEL Zip
241246 path : ./package/quarto-${{needs.configure.outputs.version}}-linux-rhel7-amd64.tar.gz
242247
243- make-installer-arm64-deb :
248+ make-installer-linux :
244249 runs-on : ubuntu-latest
245250 needs : [configure]
251+ strategy :
252+ matrix :
253+ arch : [x86_64, aarch64]
254+ format : [deb, rpm]
246255 steps :
247256 - uses : actions/checkout@v4
248257 with :
@@ -256,57 +265,47 @@ jobs:
256265 run : |
257266 ./configure.sh
258267
259- - name : Prepare Distribution
260- run : |
261- pushd package/src/
262- ./quarto-bld prepare-dist --set-version ${{needs.configure.outputs.version}} --arch aarch64 --log-level info
263- popd
264-
265- - name : Make Installer
266- run : |
267- pushd package/src/
268- ./quarto-bld make-installer-deb --set-version ${{needs.configure.outputs.version}} --arch aarch64 --log-level info
269- popd
270-
271- - name : Upload Artifact
272- uses : actions/upload-artifact@v4
273- with :
274- name : Deb Arm64 Installer
275- path : ./package/out/quarto-${{needs.configure.outputs.version}}-linux-arm64.deb
276-
277- make-installer-deb :
278- runs-on : ubuntu-latest
279- needs : [configure]
280- steps :
281- - uses : actions/checkout@v4
282- with :
283- ref : ${{ needs.configure.outputs.version_commit }}
284-
285- - name : Prevent Re-run
286- if : ${{ inputs.publish-release }}
287- uses : ./.github/workflows/actions/prevent-rerun
288-
289- - name : Configure
268+ - name : Install nfpm
290269 run : |
291- ./configure.sh
270+ wget -q https://github.com/goreleaser/nfpm/releases/download/v${NFPM_VERSION}/nfpm_${NFPM_VERSION}_Linux_x86_64.tar.gz
271+ tar -xzf nfpm_${NFPM_VERSION}_Linux_x86_64.tar.gz
272+ sudo mv nfpm /usr/local/bin/
273+ nfpm --version
292274
293275 - name : Prepare Distribution
294276 run : |
295277 pushd package/src/
296- ./quarto-bld prepare-dist --set-version ${{needs.configure.outputs.version}} --log-level info
278+ ./quarto-bld prepare-dist --set-version ${{needs.configure.outputs.version}} ${{ matrix.arch == 'aarch64' && '--arch aarch64' || '' }} --log-level info
297279 popd
298280
299281 - name : Make Installer
300282 run : |
301283 pushd package/src/
302- ./quarto-bld make-installer-deb --set-version ${{needs.configure.outputs.version}} --log-level info
284+ ./quarto-bld make-installer-${{ matrix.format }} --set-version ${{needs.configure.outputs.version}} ${{ matrix.arch == 'aarch64' && '--arch aarch64' || '' }} --log-level info
303285 popd
304286
287+ - name : Set package architecture name
288+ id : pkg_arch
289+ run : |
290+ if [ "${{ matrix.format }}" == "deb" ]; then
291+ if [ "${{ matrix.arch }}" == "x86_64" ]; then
292+ echo "arch_name=amd64" >> $GITHUB_OUTPUT
293+ else
294+ echo "arch_name=arm64" >> $GITHUB_OUTPUT
295+ fi
296+ else
297+ if [ "${{ matrix.arch }}" == "x86_64" ]; then
298+ echo "arch_name=x86_64" >> $GITHUB_OUTPUT
299+ else
300+ echo "arch_name=aarch64" >> $GITHUB_OUTPUT
301+ fi
302+ fi
303+
305304 - name : Upload Artifact
306305 uses : actions/upload-artifact@v4
307306 with :
308- name : Deb Installer
309- path : ./package/out/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
307+ name : Linux-${{ matrix.format }}-${{ matrix.arch }}- Installer
308+ path : ./package/out/quarto-${{needs.configure.outputs.version}}-linux-${{ steps.pkg_arch.outputs.arch_name }}.${{ matrix.format }}
310309
311310 test-tarball-linux :
312311 runs-on : ubuntu-latest
@@ -361,10 +360,6 @@ jobs:
361360 if : ${{ inputs.publish-release }}
362361 uses : ./.github/workflows/actions/prevent-rerun
363362
364- - name : Configure Rust Tools
365- run : |
366- rustup.exe toolchain install 1.63.0 --component rustfmt --component clippy --no-self-update
367- rustup.exe default 1.63.0
368363 - name : Configure
369364 run : |
370365 .\configure.cmd
@@ -390,6 +385,7 @@ jobs:
390385 ./package/pkg-working/bin/tools/x86_64/esbuild.exe
391386 ./package/pkg-working/bin/tools/x86_64/dart-sass/src/dart.exe
392387 ./package/pkg-working/bin/tools/x86_64/deno_dom/plugin.dll
388+ ./package/pkg-working/bin/tools/x86_64/typst-gather.exe
393389 ./package/pkg-working/bin/tools/pandoc.exe
394390 ./package/pkg-working/bin/quarto.js
395391 env :
@@ -593,8 +589,7 @@ jobs:
593589 runs-on : ubuntu-latest
594590 needs : [
595591 configure,
596- make-installer-deb,
597- make-installer-arm64-deb,
592+ make-installer-linux,
598593 make-installer-win,
599594 make-installer-mac,
600595 # optional in release to not be blocked by RHEL build depending on conda-forge deno dependency
@@ -660,13 +655,21 @@ jobs:
660655 sha256sum quarto-${{needs.configure.outputs.version}}-linux-arm64.tar.gz >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
661656 popd
662657
663- pushd Deb\ Installer
658+ pushd Linux-deb-x86_64- Installer
664659 sha256sum quarto-${{needs.configure.outputs.version}}-linux-amd64.deb >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
665660 popd
666661
667- pushd Deb\ Arm64\ Installer
662+ pushd Linux-deb-aarch64- Installer
668663 sha256sum quarto-${{needs.configure.outputs.version}}-linux-arm64.deb >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
669- popd
664+ popd
665+
666+ pushd Linux-rpm-x86_64-Installer
667+ sha256sum quarto-${{needs.configure.outputs.version}}-linux-x86_64.rpm >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
668+ popd
669+
670+ pushd Linux-rpm-aarch64-Installer
671+ sha256sum quarto-${{needs.configure.outputs.version}}-linux-aarch64.rpm >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
672+ popd
670673
671674 pushd Source
672675 sha256sum quarto-${{needs.configure.outputs.version}}.tar.gz >> ../quarto-${{needs.configure.outputs.version}}-checksums.txt
@@ -690,8 +693,10 @@ jobs:
690693 ./Deb Zip/quarto-${{needs.configure.outputs.version}}-linux-amd64.tar.gz
691694 ./Deb Arm64 Zip/quarto-${{needs.configure.outputs.version}}-linux-arm64.tar.gz
692695 ./RHEL Zip/quarto-${{needs.configure.outputs.version}}-linux-rhel7-amd64.tar.gz
693- ./Deb Installer/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
694- ./Deb Arm64 Installer/quarto-${{needs.configure.outputs.version}}-linux-arm64.deb
696+ ./Linux-deb-x86_64-Installer/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
697+ ./Linux-deb-aarch64-Installer/quarto-${{needs.configure.outputs.version}}-linux-arm64.deb
698+ ./Linux-rpm-x86_64-Installer/quarto-${{needs.configure.outputs.version}}-linux-x86_64.rpm
699+ ./Linux-rpm-aarch64-Installer/quarto-${{needs.configure.outputs.version}}-linux-aarch64.rpm
695700 ./Windows Installer/quarto-${{needs.configure.outputs.version}}-win.msi
696701 ./Windows Zip/quarto-${{needs.configure.outputs.version}}-win.zip
697702 ./Mac Installer/quarto-${{needs.configure.outputs.version}}-macos.pkg
@@ -703,8 +708,7 @@ jobs:
703708 if : ${{ (failure() || cancelled()) && inputs.publish-release }}
704709 needs : [
705710 configure,
706- make-installer-deb,
707- make-installer-arm64-deb,
711+ make-installer-linux,
708712 make-installer-win,
709713 make-installer-mac,
710714 # optional in release to not be blocked by RHEL build depending on conda-forge deno dependency
@@ -761,10 +765,20 @@ jobs:
761765
762766 - uses : ./.github/actions/docker
763767 with :
764- source : ./Deb Installer/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
768+ source : ./Linux-deb-x86_64- Installer/quarto-${{needs.configure.outputs.version}}-linux-amd64.deb
765769 version : ${{needs.configure.outputs.version}}
766770 token : ${{ secrets.GITHUB_TOKEN }}
767771 username : ${{ github.actor }}
768772 org : ${{ github.repository_owner }}
769773 name : quarto
770774 daily : ${{ inputs.pre-release }}
775+
776+ call-cloudsmith-publish :
777+ if : ${{ inputs.publish-release && ! (inputs.pre-release == true) }}
778+ needs : [configure, publish-release]
779+ uses : ./.github/workflows/publish-cloudsmith.yml
780+ with :
781+ version : ${{ needs.configure.outputs.tag_name }}
782+ dry-run : false
783+ secrets :
784+ CLOUDSMITH_API_KEY : ${{ secrets.CLOUDSMITH_API_KEY }}
0 commit comments