forked from NearInfinityBrowser/NearInfinity
-
Notifications
You must be signed in to change notification settings - Fork 15
138 lines (118 loc) · 3.9 KB
/
deploy.yml
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# This workflow will build a Java project with Apache Ant and upload the created artifacts
# on pushes to the master branch.
name: Java CD with Apache Ant
on:
push:
branches: [ "master" ]
workflow_dispatch:
branches: [ "master", "devel" ]
permissions:
contents: read
jobs:
# Build and upload NearInfinity.jar
deploy-jar:
if: ${{ github.repository == 'Argent77/NearInfinity' }}
runs-on: ubuntu-latest
name: Build NearInfinity.jar
outputs:
ni_version: ${{ steps.ni-build.outputs.NI_VERSION }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 1.8
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'temurin'
- name: Build with Ant
id: ni-build
run: |
ant -noinput -buildfile build.xml
echo "NI_VERSION=$(java -jar "NearInfinity.jar" -version 2>/dev/null | grep -Eo '[0-9]{8}')" >> "$GITHUB_OUTPUT"
- name: Upload JAR artifact
uses: actions/upload-artifact@v3
with:
name: NearInfinity-${{ steps.ni-build.outputs.NI_VERSION }}
path: NearInfinity.jar
# Build and upload installer versions for Windows and macOS
deploy-installer:
if: ${{ github.repository == 'Argent77/NearInfinity' }}
needs: deploy-jar
strategy:
fail-fast: false
matrix:
os: [ windows-latest, macos-latest ]
java: [ '21' ]
runs-on: ${{ matrix.os }}
name: Create installer for ${{ matrix.os }}, JDK ${{ matrix.java }}
steps:
# Initializations
- name: Git checkout
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Echo JAVA_HOME (windows)
if: (matrix.os == 'windows-latest')
run: |
echo $env:JAVA_HOME
java -version
- name: Echo JAVA_HOME (macos)
if: (matrix.os != 'windows-latest')
run: |
echo $JAVA_HOME
java -version
# Preparations
- name: Download JAR artifact
uses: actions/download-artifact@v3
with:
name: NearInfinity-${{ needs.deploy-jar.outputs.ni_version }}
path: jar
- name: Set up installer data
uses: actions/checkout@v4
with:
repository: NearInfinityBrowser/NearInfinity-assets
path: assets
# Building
- name: Build portable archive and installer (windows)
if: (matrix.os == 'windows-latest')
run: |
move assets\redistributable\windows\package .
move assets\redistributable\windows\build-image.cmd .
move assets\redistributable\windows\build-installer.cmd .
.\build-image.cmd
.\build-installer.cmd
- name: Build installer (macos)
if: (matrix.os == 'macos-latest')
run: |
mv assets/redistributable/macos/package .
mv assets/redistributable/macos/build.command .
chmod +x build.command
./build.command
# Validation
- name: List built files (windows)
if: (matrix.os == 'windows-latest')
run: dir
- name: List built files (macos)
if: (matrix.os == 'macos-latest')
run: ls -l
# Uploading
- name: Upload portable artifact (windows)
if: (matrix.os == 'windows-latest')
uses: actions/upload-artifact@v3
with:
name: portable-windows
path: NearInfinity-*.zip
- name: Upload exe artifact (windows)
if: (matrix.os == 'windows-latest')
uses: actions/upload-artifact@v3
with:
name: installer-windows
path: NearInfinity-*.exe
- name: Upload pkg artifact (macos)
if: (matrix.os == 'macos-latest')
uses: actions/upload-artifact@v3
with:
name: installer-macos
path: NearInfinity-*.pkg