Skip to content

Commit de98520

Browse files
authored
Automate releases to SDKMAN (#657)
1 parent dd9482d commit de98520

File tree

3 files changed

+85
-0
lines changed

3 files changed

+85
-0
lines changed

.github/scripts/publish-sdkman.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env bash
2+
3+
# from https://github.com/lampepfl/dotty/blob/37e997abc2bf4d42321492acaf7f7832ee7ce146/.github/workflows/scripts/publish-sdkman.sh
4+
# This is script for publishing Scala CLI on SDKMAN.
5+
# It's releasing and announcing the release of Scala CLI on SDKMAN.
6+
#
7+
# Requirement:
8+
# - the latest stable version of Scala CLI should be available in github artifacts
9+
10+
set -eu
11+
12+
version() {
13+
"./mill" -i writePackageVersionTo scala-cli-version 1>&2
14+
cat scala-cli-version
15+
}
16+
17+
SCALA_CLI_VERSION="$(version)"
18+
UNAMES=("pc-linux-static-sdk" "apple-darwin-sdk" "pc-win32-sdk")
19+
PLATFORMS=("LINUX_64" "MAC_OSX" "WINDOWS_64")
20+
21+
for i in "${!PLATFORMS[@]}"; do
22+
23+
SCALA_CLI_URL="https://github.com/VirtuslabRnD/scala-cli/releases/download/v$SCALA_CLI_VERSION/scala-cli-x86_64-${UNAMES[i]}.zip"
24+
25+
# Release a new Candidate Version
26+
curl --silent --show-error --fail \
27+
-X POST \
28+
-H "Consumer-Key: $SDKMAN_KEY" \
29+
-H "Consumer-Token: $SDKMAN_TOKEN" \
30+
-H "Content-Type: application/json" \
31+
-H "Accept: application/json" \
32+
-d '{"candidate": "scalacli", "version": "'"$SCALA_CLI_VERSION"'", "url": "'"$SCALA_CLI_URL"'", "platform": "'"${PLATFORMS[i]}"'" }' \
33+
https://vendors.sdkman.io/release
34+
35+
if [[ $? -ne 0 ]]; then
36+
echo "Fail sending POST request to releasing Scala CLI on SDKMAN on platform: ${PLATFORMS[i]}."
37+
exit 1
38+
fi
39+
40+
done
41+
42+
# Set SCALA_CLI_VERSION as Default for Candidate
43+
curl --silent --show-error --fail \
44+
-X PUT \
45+
-H "Consumer-Key: $SDKMAN_KEY" \
46+
-H "Consumer-Token: $SDKMAN_TOKEN" \
47+
-H "Content-Type: application/json" \
48+
-H "Accept: application/json" \
49+
-d '{"candidate": "scalacli", "version": "'"$SCALA_CLI_VERSION"'" }' \
50+
https://vendors.sdkman.io/default
51+
52+
if [[ $? -ne 0 ]]; then
53+
echo "Fail sending PUT request to announcing the release of Scala CLI on SDKMAN."
54+
exit 1
55+
fi

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,3 +394,6 @@ jobs:
394394
- run: ./mill -i ci.updateStandaloneLauncher
395395
env:
396396
UPLOAD_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
397+
- name: Publish to SDKMAN
398+
run: .github/scripts/publish-sdkman.sh
399+
shell: bash

website/docs/_advanced_install.mdx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ values={[
4646
{label: 'Rpm', value: 'rpm'},
4747
{label: 'Alpine', value: 'alpine'},
4848
{label: 'Nix', value: 'nix'},
49+
{label: 'SDKMAN', value: 'sdkman'},
4950
]}
5051
>
5152
<TabItem value="manual">
@@ -141,6 +142,14 @@ Scala CLI can be installed with [Nix](https://nixos.org) with
141142
nix-env -if https://github.com/NixOS/nixpkgs/archive/refs/heads/master.tar.gz -A scala-cli
142143
```
143144

145+
</TabItem>
146+
<TabItem value="sdkman">
147+
148+
Scala CLI can be installed via [SDKMAN](https://sdkman.io) with
149+
150+
```bash
151+
sdk install scalacli
152+
```
144153
</TabItem>
145154

146155
</Tabs>
@@ -154,6 +163,7 @@ defaultValue="manual"
154163
values={[
155164
{label: 'Manual', value: 'manual'},
156165
{label: 'Installer', value: 'installer'},
166+
{label: 'SDKMAN', value: 'sdkman'},
157167
]}
158168
>
159169

@@ -196,6 +206,14 @@ Download MSI installer with Scala CLI for Windows
196206

197207
<DownloadButton desc= 'Scala CLI for Windows' href='https://github.com/Virtuslab/scala-cli/releases/latest/download/scala-cli-x86_64-pc-win32.msi' width = '190px'></DownloadButton>
198208

209+
</TabItem>
210+
<TabItem value="sdkman">
211+
212+
Scala CLI can be installed via [SDKMAN](https://sdkman.io) with
213+
214+
```bash
215+
sdk install scalacli
216+
```
199217
</TabItem>
200218
</Tabs>
201219

@@ -210,6 +228,7 @@ values={[
210228
{label: 'Installer', value: 'installer'},
211229
{label: 'Brew', value: 'brew'},
212230
{label: 'Nix', value: 'nix'},
231+
{label: 'SDKMAN', value: 'sdkman'},
213232
]}
214233
>
215234
<TabItem value="manual">
@@ -256,6 +275,14 @@ Scala CLI can be installed with [Nix](https://nixos.org) with
256275
nix-env -if https://github.com/NixOS/nixpkgs/archive/refs/heads/master.tar.gz -A scala-cli
257276
```
258277

278+
</TabItem>
279+
<TabItem value="sdkman">
280+
281+
Scala CLI can be installed via [SDKMAN](https://sdkman.io) with
282+
283+
```bash
284+
sdk install scalacli
285+
```
259286
</TabItem>
260287
</Tabs>
261288

0 commit comments

Comments
 (0)