@@ -736,7 +736,7 @@ jobs:
736736
737737 publish_release :
738738 permissions :
739- contents : write # for actions/create-release to create a release
739+ contents : write # for GH CLI to create a release
740740 runs-on : [self-hosted, Linux]
741741 container :
742742 image : lampepfl/dotty:2024-10-18
@@ -778,6 +778,7 @@ jobs:
778778
779779 - name : Add SBT proxy repositories
780780 run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
781+
781782 # Extract the release tag
782783 - name : Extract the release tag
783784 run : echo "RELEASE_TAG=${GITHUB_REF#*refs/tags/}" >> $GITHUB_ENV
@@ -830,311 +831,31 @@ jobs:
830831 mv scala.msi "${msiInstaller}"
831832 sha256sum "${msiInstaller}" > "${msiInstaller}.sha256"
832833
834+ - name : Install GH CLI
835+ uses : dev-hanz-ops/install-gh-cli-action@v0.2.0
836+ with :
837+ gh-cli-version : 2.59.0
838+
833839 # Create the GitHub release
834840 - name : Create GitHub Release
835- id : create_gh_release
836- uses : actions/create-release@latest
837841 env :
838842 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
839- with :
840- tag_name : ${{ github.ref }}
841- release_name : ${{ github.ref }}
842- body_path : ./changelogs/${{ env.RELEASE_TAG }}.md
843- draft : true
844- prerelease : ${{ contains(env.RELEASE_TAG, '-') }}
845-
846- # The following upload steps are generated using template:
847- # val baseFileName = "scala3-${{ env.RELEASE_TAG }}"
848- # def upload(kind: String, path: String, contentType: String, distribution: String) =
849- # s"""- name: Upload $kind to GitHub Release ($distribution)
850- # uses: actions/upload-release-asset@v1
851- # env:
852- # GITHUB_TOKEN: $${{ secrets.GITHUB_TOKEN }}
853- # with:
854- # upload_url: $${{ steps.create_gh_release.outputs.upload_url }}
855- # asset_path: ./${path}
856- # asset_name: ${path}
857- # asset_content_type: ${contentType}"""
858- # def uploadSDK(distribution: String, suffix: String) =
859- # val filename = s"${baseFileName}${suffix}"
860- # s"""
861- # # $distribution
862- # ${upload("zip archive", s"$filename.zip", "application/zip", distribution)}
863- # ${upload("zip archive SHA", s"$filename.zip.sha256", "text/plain", distribution)}
864- # ${upload("tar.gz archive", s"$filename.tar.gz", "application/gzip", distribution)}
865- # ${upload("tar.gz archive SHA", s"$filename.tar.gz.sha256", "text/plain", distribution)}
866- # """
867- # def uploadMSI() =
868- # val distribution = "Windows x86_64 MSI"
869- # s"""
870- # # $distribution
871- # ${upload(".msi file", s"${baseFileName}.msi", "application/x-msi", distribution)}
872- # ${upload(".msi file SHA", s"${baseFileName}.msi.sha256", "text/plain", distribution)}
873- # """
874- # @main def gen =
875- # Seq(
876- # uploadSDK("Universal", ""),
877- # uploadSDK("Linux x86-64", "-x86_64-pc-linux"),
878- # uploadSDK("Linux aarch64", "-aarch64-pc-linux"),
879- # uploadSDK("Mac x86-64", "-x86_64-apple-darwin"),
880- # uploadSDK("Mac aarch64", "-aarch64-apple-darwin"),
881- # uploadSDK("Windows x86_64", "-x86_64-pc-win32"),
882- # uploadMSI()
883- # ).foreach(println)
884-
885- # Universal
886- - name : Upload zip archive to GitHub Release (Universal)
887- uses : actions/upload-release-asset@v1
888- env :
889- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
890- with :
891- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
892- asset_path : ./scala3-${{ env.RELEASE_TAG }}.zip
893- asset_name : scala3-${{ env.RELEASE_TAG }}.zip
894- asset_content_type : application/zip
895- - name : Upload zip archive SHA to GitHub Release (Universal)
896- uses : actions/upload-release-asset@v1
897- env :
898- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
899- with :
900- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
901- asset_path : ./scala3-${{ env.RELEASE_TAG }}.zip.sha256
902- asset_name : scala3-${{ env.RELEASE_TAG }}.zip.sha256
903- asset_content_type : text/plain
904- - name : Upload tar.gz archive to GitHub Release (Universal)
905- uses : actions/upload-release-asset@v1
906- env :
907- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
908- with :
909- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
910- asset_path : ./scala3-${{ env.RELEASE_TAG }}.tar.gz
911- asset_name : scala3-${{ env.RELEASE_TAG }}.tar.gz
912- asset_content_type : application/gzip
913- - name : Upload tar.gz archive SHA to GitHub Release (Universal)
914- uses : actions/upload-release-asset@v1
915- env :
916- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
917- with :
918- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
919- asset_path : ./scala3-${{ env.RELEASE_TAG }}.tar.gz.sha256
920- asset_name : scala3-${{ env.RELEASE_TAG }}.tar.gz.sha256
921- asset_content_type : text/plain
922-
923-
924- # Linux x86-64
925- - name : Upload zip archive to GitHub Release (Linux x86-64)
926- uses : actions/upload-release-asset@v1
927- env :
928- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
929- with :
930- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
931- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.zip
932- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.zip
933- asset_content_type : application/zip
934- - name : Upload zip archive SHA to GitHub Release (Linux x86-64)
935- uses : actions/upload-release-asset@v1
936- env :
937- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
938- with :
939- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
940- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.zip.sha256
941- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.zip.sha256
942- asset_content_type : text/plain
943- - name : Upload tar.gz archive to GitHub Release (Linux x86-64)
944- uses : actions/upload-release-asset@v1
945- env :
946- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
947- with :
948- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
949- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.tar.gz
950- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.tar.gz
951- asset_content_type : application/gzip
952- - name : Upload tar.gz archive SHA to GitHub Release (Linux x86-64)
953- uses : actions/upload-release-asset@v1
954- env :
955- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
956- with :
957- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
958- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.tar.gz.sha256
959- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-linux.tar.gz.sha256
960- asset_content_type : text/plain
961-
962-
963- # Linux aarch64
964- - name : Upload zip archive to GitHub Release (Linux aarch64)
965- uses : actions/upload-release-asset@v1
966- env :
967- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
968- with :
969- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
970- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.zip
971- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.zip
972- asset_content_type : application/zip
973- - name : Upload zip archive SHA to GitHub Release (Linux aarch64)
974- uses : actions/upload-release-asset@v1
975- env :
976- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
977- with :
978- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
979- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.zip.sha256
980- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.zip.sha256
981- asset_content_type : text/plain
982- - name : Upload tar.gz archive to GitHub Release (Linux aarch64)
983- uses : actions/upload-release-asset@v1
984- env :
985- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
986- with :
987- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
988- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.tar.gz
989- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.tar.gz
990- asset_content_type : application/gzip
991- - name : Upload tar.gz archive SHA to GitHub Release (Linux aarch64)
992- uses : actions/upload-release-asset@v1
993- env :
994- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
995- with :
996- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
997- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.tar.gz.sha256
998- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-pc-linux.tar.gz.sha256
999- asset_content_type : text/plain
1000-
1001-
1002- # Mac x86-64
1003- - name : Upload zip archive to GitHub Release (Mac x86-64)
1004- uses : actions/upload-release-asset@v1
1005- env :
1006- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1007- with :
1008- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1009- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.zip
1010- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.zip
1011- asset_content_type : application/zip
1012- - name : Upload zip archive SHA to GitHub Release (Mac x86-64)
1013- uses : actions/upload-release-asset@v1
1014- env :
1015- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1016- with :
1017- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1018- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.zip.sha256
1019- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.zip.sha256
1020- asset_content_type : text/plain
1021- - name : Upload tar.gz archive to GitHub Release (Mac x86-64)
1022- uses : actions/upload-release-asset@v1
1023- env :
1024- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1025- with :
1026- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1027- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.tar.gz
1028- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.tar.gz
1029- asset_content_type : application/gzip
1030- - name : Upload tar.gz archive SHA to GitHub Release (Mac x86-64)
1031- uses : actions/upload-release-asset@v1
1032- env :
1033- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1034- with :
1035- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1036- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.tar.gz.sha256
1037- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-apple-darwin.tar.gz.sha256
1038- asset_content_type : text/plain
1039-
1040-
1041- # Mac aarch64
1042- - name : Upload zip archive to GitHub Release (Mac aarch64)
1043- uses : actions/upload-release-asset@v1
1044- env :
1045- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1046- with :
1047- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1048- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.zip
1049- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.zip
1050- asset_content_type : application/zip
1051- - name : Upload zip archive SHA to GitHub Release (Mac aarch64)
1052- uses : actions/upload-release-asset@v1
1053- env :
1054- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1055- with :
1056- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1057- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.zip.sha256
1058- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.zip.sha256
1059- asset_content_type : text/plain
1060- - name : Upload tar.gz archive to GitHub Release (Mac aarch64)
1061- uses : actions/upload-release-asset@v1
1062- env :
1063- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1064- with :
1065- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1066- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.tar.gz
1067- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.tar.gz
1068- asset_content_type : application/gzip
1069- - name : Upload tar.gz archive SHA to GitHub Release (Mac aarch64)
1070- uses : actions/upload-release-asset@v1
1071- env :
1072- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1073- with :
1074- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1075- asset_path : ./scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.tar.gz.sha256
1076- asset_name : scala3-${{ env.RELEASE_TAG }}-aarch64-apple-darwin.tar.gz.sha256
1077- asset_content_type : text/plain
1078-
1079-
1080- # Windows x86_64
1081- - name : Upload zip archive to GitHub Release (Windows x86_64)
1082- uses : actions/upload-release-asset@v1
1083- env :
1084- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1085- with :
1086- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1087- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.zip
1088- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.zip
1089- asset_content_type : application/zip
1090- - name : Upload zip archive SHA to GitHub Release (Windows x86_64)
1091- uses : actions/upload-release-asset@v1
1092- env :
1093- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1094- with :
1095- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1096- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.zip.sha256
1097- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.zip.sha256
1098- asset_content_type : text/plain
1099- - name : Upload tar.gz archive to GitHub Release (Windows x86_64)
1100- uses : actions/upload-release-asset@v1
1101- env :
1102- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1103- with :
1104- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1105- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.tar.gz
1106- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.tar.gz
1107- asset_content_type : application/gzip
1108- - name : Upload tar.gz archive SHA to GitHub Release (Windows x86_64)
1109- uses : actions/upload-release-asset@v1
1110- env :
1111- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1112- with :
1113- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1114- asset_path : ./scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.tar.gz.sha256
1115- asset_name : scala3-${{ env.RELEASE_TAG }}-x86_64-pc-win32.tar.gz.sha256
1116- asset_content_type : text/plain
1117-
1118-
1119- # Windows x86_64 MSI
1120- - name : Upload .msi file to GitHub Release (Windows x86_64 MSI)
1121- uses : actions/upload-release-asset@v1
1122- env :
1123- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1124- with :
1125- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1126- asset_path : ./scala3-${{ env.RELEASE_TAG }}.msi
1127- asset_name : scala3-${{ env.RELEASE_TAG }}.msi
1128- asset_content_type : application/x-msi
1129- - name : Upload .msi file SHA to GitHub Release (Windows x86_64 MSI)
1130- uses : actions/upload-release-asset@v1
1131- env :
1132- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1133- with :
1134- upload_url : ${{ steps.create_gh_release.outputs.upload_url }}
1135- asset_path : ./scala3-${{ env.RELEASE_TAG }}.msi.sha256
1136- asset_name : scala3-${{ env.RELEASE_TAG }}.msi.sha256
1137- asset_content_type : text/plain
843+ shell : bash
844+ run : |
845+ # We need to config safe.directory in every step that might reference git
846+ # It is not persisted between steps
847+ git config --global --add safe.directory /__w/scala3/scala3
848+ gh release create \
849+ --draft \
850+ --title "${{ env.RELEASE_TAG }}" \
851+ --notes-file ./changelogs/${{ env.RELEASE_TAG }}.md \
852+ --latest=${{ !contains(env.RELEASE_TAG, '-RC') }} \
853+ --prerelease=${{ contains(env.RELEASE_TAG, '-RC') }} \
854+ --verify-tag ${{ env.RELEASE_TAG }} \
855+ scala3-${{ env.RELEASE_TAG }}*.zip \
856+ scala3-${{ env.RELEASE_TAG }}*.tar.gz \
857+ scala3-${{ env.RELEASE_TAG }}*.sha256 \
858+ scala3-${{ env.RELEASE_TAG }}.msi
1138859
1139860 - name : Publish Release
1140861 run : ./project/scripts/sbtPublish ";project scala3-bootstrapped ;publishSigned ;sonatypeBundleUpload"
0 commit comments