21
21
type : string
22
22
23
23
jobs :
24
- # TODO: ADD JOB TO SWITCH THE GITHUB RELEASE FROM DRAFT TO LATEST
25
- publish-sdkman :
26
- uses : ./.github/workflows/publish-sdkman.yml
27
- with :
28
- version : ${{ inputs.version }}
29
- secrets :
30
- CONSUMER-KEY : ${{ secrets.SDKMAN_KEY }}
31
- CONSUMER-TOKEN : ${{ secrets.SDKMAN_TOKEN }}
32
-
33
- publish-winget :
34
- uses : ./.github/workflows/publish-winget.yml
35
- with :
36
- version : ${{ inputs.version }}
37
- secrets :
38
- DOTTYBOT-TOKEN : ${{ secrets.DOTTYBOT_WINGET_TOKEN }}
39
-
40
- compute-digest :
41
- runs-on : ubuntu-latest
42
- outputs :
43
- digest : ${{ steps.digest.outputs.digest }}
24
+ republish_artifacts :
25
+ permissions :
26
+ contents : write # for GH CLI to create a release
27
+ runs-on : [self-hosted, Linux]
28
+ container :
29
+ image : lampepfl/dotty:2024-10-18
30
+ options : --cpu-shares 4096
31
+ volumes :
32
+ - ${{ github.workspace }}/../../cache/sbt:/root/.sbt
33
+ - ${{ github.workspace }}/../../cache/ivy:/root/.ivy2/cache
34
+ - ${{ github.workspace }}/../../cache/general:/root/.cache
35
+
36
+ env :
37
+ RELEASEBUILD : yes
38
+
44
39
steps :
45
- - name : Compute the SHA256 of scala3-${{ inputs.version }}-x86_64-pc-win32.zip in GitHub Release
46
- id : digest
40
+ # #####################################################################################
41
+ # # WARNING: DO NOT CHANGE THE JAVA VERSION HERE. SCALA IS DISTRIBUTED USING JAVA 8. ##
42
+ # #####################################################################################
43
+ - name : Set JDK 8 as default
44
+ run : echo "/usr/lib/jvm/java-8-openjdk-amd64/bin" >> $GITHUB_PATH
45
+ - name : Reset existing repo
47
46
run : |
48
- curl -o artifact.zip -L https://github.com/scala/scala3/releases/download/${{ inputs.version }}/scala3-${{ inputs.version }}-x86_64-pc-win32.zip
49
- echo "digest=$(sha256sum artifact.zip | cut -d " " -f 1)" >> "$GITHUB_OUTPUT"
50
-
51
- build-chocolatey :
52
- uses : ./.github/workflows/build-chocolatey.yml
53
- needs : compute-digest
54
- with :
55
- version : ${{ inputs.version }}
56
- url : ' https://github.com/scala/scala3/releases/download/${{ inputs.version }}/scala3-${{ inputs.version }}-x86_64-pc-win32.zip'
57
- digest : ${{ needs.compute-digest.outputs.digest }}
58
- test-chocolatey :
59
- uses : ./.github/workflows/test-chocolatey.yml
60
- needs : build-chocolatey
61
- with :
62
- version : ${{ inputs.version }}
63
- java-version : 8
64
- publish-chocolatey :
65
- uses : ./.github/workflows/publish-chocolatey.yml
66
- needs : [ build-chocolatey, test-chocolatey ]
67
- with :
68
- version : ${{ inputs.version }}
69
- secrets :
70
- API-KEY : ${{ secrets.CHOCOLATEY_KEY }}
71
-
72
- # TODO: ADD RELEASE WORKFLOW TO CHOCOLATEY AND OTHER PACKAGE MANAGERS HERE
47
+ git config --global --add safe.directory /__w/scala3/scala3
48
+ git -c "http.https://github.com/.extraheader=" fetch --recurse-submodules=no "https://github.com/scala/scala3" && git reset --hard FETCH_HEAD || true
49
+
50
+ - name : Checkout cleanup script
51
+ uses : actions/checkout@v4
52
+
53
+ - name : Cleanup
54
+ run : .github/workflows/cleanup.sh
55
+
56
+ - name : Git Checkout
57
+ uses : actions/checkout@v4
58
+
59
+ - name : Add SBT proxy repositories
60
+ run : cp -vf .github/workflows/repositories /root/.sbt/ ; true
61
+
62
+ - name : Check compiler version
63
+ shell : bash
64
+ run : |
65
+ version=$(./project/scripts/sbt "print scala3-compiler-bootstrapped/version" | tail -n1)
66
+ echo "This build version: ${version}"
67
+ if [ "${version}" != "${{ inputs.version }}" ]; then
68
+ echo "Compiler version for this build '${version}', does not match tag: ${{ inputs.version }}"
69
+ exit 1
70
+ fi
71
+
72
+
73
+ - name : Prepare the SDKs
74
+ shell : bash
75
+ run : |
76
+ git config --global --add safe.directory /__w/scala3/scala3
77
+ prepareSDK() {
78
+ distroSuffix="$1"
79
+ sbtProject="$2"
80
+ distDir="$3"
81
+
82
+ # Build binaries
83
+ ./project/scripts/sbt "all ${sbtProject}/Universal/packageBin ${sbtProject}/Universal/packageZipTarball"
84
+
85
+ outputPath="${distDir}/target/universal/stage"
86
+ artifactName="scala3-${{ inputs.version }}${distroSuffix}"
87
+ zipArchive="${artifactName}.zip"
88
+ tarGzArchive="${artifactName}.tar.gz"
89
+
90
+ # Caluclate SHA for each of archive files
91
+ for file in "${zipArchive}" "${tarGzArchive}"; do
92
+ mv $outputPath/$file $file
93
+ sha256sum "${file}" > "${file}.sha256"
94
+ done
95
+ }
96
+ prepareSDK "" "dist" "./dist/"
97
+ prepareSDK "-aarch64-pc-linux" "dist-linux-aarch64" "./dist/linux-aarch64/"
98
+ prepareSDK "-x86_64-pc-linux" "dist-linux-x86_64" "./dist/linux-x86_64/"
99
+ prepareSDK "-aarch64-apple-darwin" "dist-mac-aarch64" "./dist/mac-aarch64/"
100
+ prepareSDK "-x86_64-apple-darwin" "dist-mac-x86_64" "./dist/mac-x86_64/"
101
+ prepareSDK "-x86_64-pc-win32" "dist-win-x86_64" "./dist/win-x86_64/"
102
+
103
+ # - name: Download MSI package
104
+ # uses: actions/download-artifact@v4
105
+ # with:
106
+ # name: scala.msi
107
+ # path: .
108
+ # - name: Prepare MSI package
109
+ # shell: bash
110
+ # run: |
111
+ # msiInstaller="scala3-${{ inputs.version }}.msi"
112
+ # mv scala.msi "${msiInstaller}"
113
+ # sha256sum "${msiInstaller}" > "${msiInstaller}.sha256"
114
+
115
+ - name : Install GH CLI
116
+ uses :
dev-hanz-ops/[email protected]
117
+ with :
118
+ gh-cli-version : 2.59.0
119
+
120
+ # Create the GitHub release
121
+ - name : Create GitHub Release
122
+ env :
123
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
124
+ shell : bash
125
+ run : |
126
+ git config --global --add safe.directory /__w/scala3/scala3
127
+ gh release upload ${{ inputs.version }} \
128
+ --clobber \
129
+ scala3-${{ inputs.version }}*.zip \
130
+ scala3-${{ inputs.version }}*.tar.gz \
131
+ scala3-${{ inputs.version }}*.sha256
132
+
133
+ # scala3-${{ inputs.version }}.msi
0 commit comments