forked from vrcx-team/VRCX
-
Notifications
You must be signed in to change notification settings - Fork 5
132 lines (119 loc) · 3.91 KB
/
github_actions.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
name: VRCX
on:
push:
branches:
- Nightly
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
set_version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v3
- id: version
run: |
git_hash=$(git rev-parse --short "$GITHUB_SHA")
export FILENAME="$(date '+%Y-%m-%dT%H.%M')-${git_hash}"
echo "::set-output name=version::${FILENAME}"
build_dotnet:
runs-on: windows-latest
needs: set_version
steps:
- uses: actions/checkout@v3
- name: Setup .NET 8
uses: actions/setup-dotnet@v3
with:
dotnet-version: "8.0.x"
- name: Set version
run: |
echo "${{ needs.set_version.outputs.version }}" > Version
cat Version
- name: Build .NET Application
run: dotnet build -p:Configuration=Release -p:Platform=x64 -p:EnableWindowsTargeting=true --self-contained
- name: Upload dotnet artifacts
uses: actions/upload-artifact@v3
with:
name: Release
path: bin/x64/Release
build_node:
runs-on: ubuntu-latest
needs: set_version
defaults:
run:
working-directory: html
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Restore dependencies
run: npm ci
- name: Build
run: npm run production
- name: Upload html artifacts
uses: actions/upload-artifact@v3
with:
name: html
path: html/dist
create_setup:
runs-on: ubuntu-latest
needs: [set_version, build_node, build_dotnet]
steps:
- uses: actions/checkout@v3
- name: Install 7-zip and makensis
run: sudo apt update && sudo apt install -y p7zip-full nsis nsis-pluginapi
- name: Set plugin permissions
run: sudo chown -R $(whoami) /usr/share/nsis/Plugins/
- name: Download dotnet artifacts
uses: actions/download-artifact@v3
with:
name: Release
path: bin/x64/Release
- name: Download html artifacts
uses: actions/download-artifact@v3
with:
name: html
path: bin/x64/Release/html
- name: Create nsis installer
uses: joncloud/makensis-action@v4
with:
script-file: Installer/installer.nsi
additional-plugin-paths: Installer/Plugins
- name: Rename setup
run: |
file_name="VRCX_${{ needs.set_version.outputs.version }}_Setup.exe"
echo "Setup FileName: ${file_name}"
mv Installer/VRCX_Setup.exe $file_name
- name: Make zip
run: |
file_name="VRCX_${{ needs.set_version.outputs.version }}.zip"
cd bin/x64/Release
7z a -tzip ${file_name} * -mx=7 -xr0!*.log
mv ${file_name} ../../../${file_name}
echo "Zip FileName: ${file_name}"
- name: Generate setup hash
run: |
sha256sum "VRCX_${{ needs.set_version.outputs.version }}_Setup.exe" > "SHA256SUMS.txt"
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "${{ needs.set_version.outputs.version }}"
release_name: "VRCX Nightly ${{ needs.set_version.outputs.version }}"
draft: false
prerelease: false
- name: Upload multiple assets to release
uses: csexton/release-asset-action@v2
with:
files: |
VRCX_${{ needs.set_version.outputs.version }}_Setup.exe
VRCX_${{ needs.set_version.outputs.version }}.zip
SHA256SUMS.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
release-url: ${{ steps.create_release.outputs.upload_url }}