-
Notifications
You must be signed in to change notification settings - Fork 0
103 lines (86 loc) · 2.94 KB
/
Copy pathrelease.yml
File metadata and controls
103 lines (86 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
name: Release
on:
push:
tags:
- "v*"
permissions:
contents: read
jobs:
verify:
name: Verify on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
gradle: ./gradlew
- os: windows-latest
gradle: ./gradlew.bat
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "25"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Provision Minecraft 1.7.10 client
shell: python
run: |
import hashlib
import os
from pathlib import Path
import time
from urllib.request import urlretrieve
expected_sha1 = "e80d9b3bf5085002218d4be59e668bac718abbc6"
client = Path(os.environ["RUNNER_TEMP"]) / "minecraft-1.7.10-client.jar"
url = f"https://launcher.mojang.com/v1/objects/{expected_sha1}/client.jar"
for attempt in range(3):
try:
urlretrieve(url, client)
break
except OSError:
if attempt == 2:
raise
time.sleep(2)
actual_sha1 = hashlib.sha1(client.read_bytes()).hexdigest()
if actual_sha1 != expected_sha1:
raise RuntimeError(
f"Minecraft client SHA-1 mismatch: expected {expected_sha1}, got {actual_sha1}")
with open(os.environ["GITHUB_ENV"], "a", encoding="utf-8") as environment:
environment.write(f"MODULARUI2_PREVIEW_MINECRAFT_JAR={client}\n")
- name: Make Gradle wrapper executable
if: runner.os != 'Windows'
run: chmod +x gradlew
- name: Verify
run: ${{ matrix.gradle }} agentVerify --no-daemon --stacktrace --console=plain
release:
needs: verify
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up JDK 25
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "25"
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
- name: Make Gradle wrapper executable
run: chmod +x gradlew
- name: Build release archives
env:
RELEASE_VERSION: ${{ github.ref_name }}
run: ./gradlew distChecksums -PreleaseVersion="${RELEASE_VERSION#v}" --no-daemon --stacktrace --console=plain
- name: Publish release
env:
GH_TOKEN: ${{ github.token }}
run: gh release create "$GITHUB_REF_NAME" build/distributions/*.zip build/distributions/*.tar.gz build/distributions/*.sha256 --verify-tag --title "$GITHUB_REF_NAME" --notes ""