Skip to content

Commit 6aa35ed

Browse files
authored
ci: init github actions (#3)
1 parent b8fc5f7 commit 6aa35ed

File tree

4 files changed

+128
-1
lines changed

4 files changed

+128
-1
lines changed

.github/workflows/ci.yml

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
name: "CI"
2+
on:
3+
push:
4+
pull_request:
5+
workflow_dispatch:
6+
inputs:
7+
release:
8+
description: "Publish Release"
9+
type: boolean
10+
default: false
11+
12+
concurrency:
13+
cancel-in-progress: true
14+
group: ci-${{ github.event.pull_request.number || github.ref }}
15+
16+
permissions:
17+
contents: read
18+
19+
jobs:
20+
build:
21+
name: Build ${{ matrix.mc_version }}
22+
runs-on: ubuntu-latest
23+
strategy:
24+
fail-fast: true
25+
matrix:
26+
mc_version:
27+
- 1.21.6
28+
outputs:
29+
version: ${{ steps.resolve_variables.outputs.version }}
30+
steps:
31+
- name: Resolve variables
32+
id: resolve_variables
33+
run: |
34+
MC_VERSION="${{ matrix.mc_version }}"
35+
echo "PROJECT_NAME=v${MC_VERSION//./_}" >> $GITHUB_ENV
36+
echo "OUTPUT_FILE_NAME=bridge_${MC_VERSION//./}.jar" >> $GITHUB_ENV
37+
38+
CALVER_BASE=$(date +"%Y.%m.%d")
39+
SHORT_COMMIT_SHA=$(cut -c1-10 <<< "${{ github.sha }}")
40+
echo "version=$CALVER_BASE-$SHORT_COMMIT_SHA" >> $GITHUB_OUTPUT
41+
42+
- name: Checkout repository
43+
uses: actions/checkout@v4
44+
45+
- name: Setup Java
46+
uses: actions/setup-java@v4
47+
with:
48+
java-version: 24
49+
check-latest: true
50+
distribution: 'zulu'
51+
52+
- name: Setup Gradle
53+
uses: gradle/actions/setup-gradle@v4
54+
env:
55+
GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: ${{ matrix.mc_version }}/
56+
with:
57+
add-job-summary: always
58+
cache-cleanup: on-success
59+
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
60+
# automatically publishes build scans for the main branch
61+
build-scan-publish: ${{ github.ref == 'refs/heads/main' }}
62+
build-scan-terms-of-use-agree: yes
63+
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
64+
65+
- name: Setup Loom cache
66+
uses: actions/cache@v4
67+
with:
68+
path: '.gradle/loom-cache'
69+
restore-keys: ${{ runner.os }}-${{ matrix.mc_version }}-gradle-loom-
70+
key: ${{ runner.os }}-${{ matrix.mc_version }}-gradle-loom-${{ hashFiles('gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }}
71+
72+
- name: Run build
73+
run: ./gradlew :${{ env.PROJECT_NAME }}:build -Pversion=${{ steps.resolve_variables.outputs.version }} --stacktrace
74+
75+
- name: Upload artifact
76+
uses: actions/upload-artifact@v4
77+
with:
78+
retention-days: 1
79+
name: cloudnet_version_bridge_${{ env.PROJECT_NAME }}
80+
path: ${{ env.PROJECT_NAME }}/build/libs/${{ env.OUTPUT_FILE_NAME }}
81+
82+
merge_jars:
83+
name: Merge jars
84+
needs: build
85+
runs-on: ubuntu-latest
86+
steps:
87+
- name: Download artifacts
88+
uses: actions/download-artifact@v5
89+
with:
90+
path: artifacts/
91+
92+
- name: Upload merged artifact zip
93+
uses: actions/upload-artifact@v4
94+
with:
95+
path: artifacts/
96+
name: cloudnet_version_bridge_merged
97+
98+
release:
99+
name: Publish release
100+
needs:
101+
- build
102+
- merge_jars
103+
if: ${{ github.event.inputs.release == 'true' }}
104+
permissions:
105+
contents: write
106+
runs-on: ubuntu-latest
107+
steps:
108+
- name: Download artifacts
109+
uses: actions/download-artifact@v5
110+
with:
111+
path: artifacts/
112+
name: cloudnet_version_bridge_merged
113+
114+
- name: Zip artifacts
115+
run: zip cloudnet_fabric_version_bridge_all.zip artifacts/*
116+
117+
- name: Publish release
118+
env:
119+
GH_TOKEN: ${{ github.token }}
120+
run: >
121+
gh release create '${{ needs.build.outputs.version }}' cloudnet_fabric_version_bridge_all.zip
122+
--latest
123+
--generate-notes
124+
--fail-on-no-commits
125+
--target '${{ github.sha }}'
126+
--title '${{ needs.build.outputs.version }}'

build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ plugins {
2929
val targetJavaVersion = JavaVersion.VERSION_24
3030

3131
allprojects {
32-
version = "1.0"
3332
group = "eu.cloudnetservice.cloudnet"
3433
}
3534

gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
# limitations under the License.
1515
#
1616

17+
version=dev-SNAPSHOT
18+
1719
org.gradle.caching=true
1820
org.gradle.parallel=true
1921
org.gradle.warning.mode=all

gradlew

100644100755
File mode changed.

0 commit comments

Comments
 (0)