Skip to content

Commit

Permalink
Add .msi artifacts to release assets (#21834)
Browse files Browse the repository at this point in the history
We now include .msi files produced by `build-msi-package` in release
assets including both .msi file and it's sha256

Resolves #21820
  • Loading branch information
WojciechMazur authored Nov 6, 2024
1 parent 32aaa8a commit 83c75dd
Showing 1 changed file with 62 additions and 18 deletions.
80 changes: 62 additions & 18 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -737,7 +737,7 @@ jobs:
- ${{ github.workspace }}/../../cache/sbt:/root/.sbt
- ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
- ${{ github.workspace }}/../../cache/general:/root/.cache
needs: [test_non_bootstrapped, test, mima, community_build_a, community_build_b, community_build_c, test_sbt, test_java8, build-sdk-package]
needs: [test_non_bootstrapped, test, mima, community_build_a, community_build_b, community_build_c, test_sbt, test_java8, build-sdk-package, build-msi-package]
if: "github.event_name == 'push'
&& startsWith(github.event.ref, 'refs/tags/')"

Expand Down Expand Up @@ -816,6 +816,18 @@ jobs:
prepareSDK "-x86_64-apple-darwin" "dist-mac-x86_64" "./dist/mac-x86_64/"
prepareSDK "-x86_64-pc-win32" "dist-win-x86_64" "./dist/win-x86_64/"
- name: Download MSI package
uses: actions/download-artifact@v4
with:
name: scala.msi
path: .
- name: Prepare MSI package
shell: bash
run: |
msiInstaller="scala3-${{ env.RELEASE_TAG }}.msi"
mv scala.msi "${msiInstaller}"
sha256sum "${msiInstaller}" > "${msiInstaller}.sha256"
# Create the GitHub release
- name: Create GitHub Release
id: create_gh_release
Expand All @@ -829,10 +841,10 @@ jobs:
draft: true
prerelease: ${{ contains(env.RELEASE_TAG, '-') }}

# The following steps are generated using template:
# def template(distribution: String, suffix: String) =
# def upload(kind: String, path: String, contentType: String) =
# s"""- name: Upload $kind to GitHub Release ($distribution)
# The following upload steps are generated using template:
# val baseFileName = "scala3-${{ env.RELEASE_TAG }}"
# def upload(kind: String, path: String, contentType: String, distribution: String) =
# s"""- name: Upload $kind to GitHub Release ($distribution)
# uses: actions/upload-release-asset@v1
# env:
# GITHUB_TOKEN: $${{ secrets.GITHUB_TOKEN }}
Expand All @@ -841,24 +853,33 @@ jobs:
# asset_path: ./${path}
# asset_name: ${path}
# asset_content_type: ${contentType}"""
# val filename = s"scala3-$${{ env.RELEASE_TAG }}${suffix}"
# def uploadSDK(distribution: String, suffix: String) =
# val filename = s"${baseFileName}${suffix}"
# s"""
# # $distribution
# ${upload("zip archive", s"$filename.zip", "application/zip")}
# ${upload("zip archive SHA", s"$filename.zip.sha256", "text/plain")}
# ${upload("tar.gz archive", s"$filename.tar.gz", "application/gzip")}
# ${upload("tar.gz archive SHA", s"$filename.tar.gz.sha256", "text/plain")}
# ${upload("zip archive", s"$filename.zip", "application/zip", distribution)}
# ${upload("zip archive SHA", s"$filename.zip.sha256", "text/plain", distribution)}
# ${upload("tar.gz archive", s"$filename.tar.gz", "application/gzip", distribution)}
# ${upload("tar.gz archive SHA", s"$filename.tar.gz.sha256", "text/plain", distribution)}
# """
# def uploadMSI() =
# val distribution = "Windows x86_64 MSI"
# s"""
# # $distribution
# ${upload(".msi file", s"${baseFileName}.msi", "application/x-msi", distribution)}
# ${upload(".msi file SHA", s"${baseFileName}.msi.sha256", "text/plain", distribution)}
# """

# @main def gen =
# Seq(
# template("Universal", ""),
# template("Linux x86-64", "-x86_64-pc-linux"),
# template("Linux aarch64", "-aarch64-pc-linux"),
# template("Mac x86-64", "-x86_64-apple-darwin"),
# template("Mac aarch64", "-aarch64-apple-darwin"),
# template("Windows x86_64", "-x86_64-pc-win32")
# uploadSDK("Universal", ""),
# uploadSDK("Linux x86-64", "-x86_64-pc-linux"),
# uploadSDK("Linux aarch64", "-aarch64-pc-linux"),
# uploadSDK("Mac x86-64", "-x86_64-apple-darwin"),
# uploadSDK("Mac aarch64", "-aarch64-apple-darwin"),
# uploadSDK("Windows x86_64", "-x86_64-pc-win32"),
# uploadMSI()
# ).foreach(println)

# Universal
- name: Upload zip archive to GitHub Release (Universal)
uses: actions/upload-release-asset@v1
Expand Down Expand Up @@ -1092,6 +1113,27 @@ jobs:
asset_name: scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.tar.gz.sha256
asset_content_type: text/plain


# Windows x86_64 MSI
- name: Upload .msi file to GitHub Release (Windows x86_64 MSI)
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_gh_release.outputs.upload_url }}
asset_path: ./scala3-${{ env.RELEASE_TAG }}.msi
asset_name: scala3-${{ env.RELEASE_TAG }}.msi
asset_content_type: application/x-msi
- name: Upload .msi file SHA to GitHub Release (Windows x86_64 MSI)
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_gh_release.outputs.upload_url }}
asset_path: ./scala3-${{ env.RELEASE_TAG }}.msi.sha256
asset_name: scala3-${{ env.RELEASE_TAG }}.msi.sha256
asset_content_type: text/plain

- name: Publish Release
run: ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonatypeBundleUpload"

Expand All @@ -1118,7 +1160,9 @@ jobs:

build-msi-package:
uses: ./.github/workflows/build-msi.yml
if : github.event_name == 'pull_request' && contains(github.event.pull_request.body, '[test_msi]')
if :
(github.event_name == 'pull_request' && contains(github.event.pull_request.body, '[test_msi]')) ||
(github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/'))

test-msi-package:
uses: ./.github/workflows/test-msi.yml
Expand Down

0 comments on commit 83c75dd

Please sign in to comment.