-
Notifications
You must be signed in to change notification settings - Fork 0
146 lines (125 loc) · 4.18 KB
/
Copy pathpackage.yml
File metadata and controls
146 lines (125 loc) · 4.18 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
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
139
140
141
142
143
144
145
146
name: Package Installers
on:
workflow_dispatch:
inputs:
version:
description: "Package version"
required: false
default: "0.1.0"
push:
tags:
- "v*"
permissions:
contents: write
jobs:
windows:
name: Windows installer package
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Resolve version
id: version
shell: pwsh
run: |
if ("${{ github.event_name }}" -eq "workflow_dispatch") {
$version = "${{ inputs.version }}"
} elseif ("${{ github.ref_type }}" -eq "tag") {
$version = "${{ github.ref_name }}".TrimStart("v")
} else {
$version = "0.1.0"
}
"version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
- name: Install WiX Toolset
shell: pwsh
run: |
dotnet tool install --global wix --version 6.*
"$env:USERPROFILE\.dotnet\tools" | Out-File -FilePath $env:GITHUB_PATH -Append
- name: Build Windows MSI package
shell: pwsh
run: |
./build/package-msi.ps1 -Version "${{ steps.version.outputs.version }}"
- name: Build Windows portable package
shell: pwsh
run: |
./build/package-standalone-windows.ps1 -Version "${{ steps.version.outputs.version }}"
- name: Upload Windows package
uses: actions/upload-artifact@v4
with:
name: DeskAccess-windows-amd64
path: |
dist/packages/DeskAccess-${{ steps.version.outputs.version }}-windows-amd64.msi
dist/packages/DeskAccess-${{ steps.version.outputs.version }}-windows-amd64-portable.zip
dist/packages/SHA256SUMS.txt
if-no-files-found: error
linux:
name: Linux installer package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install native build dependencies
run: |
sudo apt-get update
sudo apt-get install -y gcc libgtk-3-dev libayatana-appindicator3-dev
rustup target add x86_64-unknown-linux-gnu
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Resolve version
id: version
shell: bash
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
version="${{ inputs.version }}"
elif [[ "${{ github.ref_type }}" == "tag" ]]; then
version="${GITHUB_REF_NAME#v}"
else
version="0.1.0"
fi
echo "version=$version" >> "$GITHUB_OUTPUT"
- name: Build Linux package
shell: bash
run: |
bash build/package-linux.sh "${{ steps.version.outputs.version }}"
- name: Upload Linux package
uses: actions/upload-artifact@v4
with:
name: deskaccess-linux-amd64
path: |
dist/packages/deskaccess-${{ steps.version.outputs.version }}-linux-amd64.tar.gz
dist/packages/deskaccess_${{ steps.version.outputs.version }}_amd64.deb
dist/packages/SHA256SUMS.txt
if-no-files-found: error
release:
name: Publish GitHub release
if: github.ref_type == 'tag'
needs: [windows, linux]
runs-on: ubuntu-latest
steps:
- name: Download packages
uses: actions/download-artifact@v4
with:
path: release-assets
- name: Flatten assets
shell: bash
run: |
mkdir -p upload
find release-assets -type f \( -name "*.zip" -o -name "*.msi" -o -name "*.tar.gz" -o -name "*.deb" \) -exec cp {} upload/ \;
find release-assets -type f -name "SHA256SUMS.txt" -print0 |
while IFS= read -r -d '' file; do
dir="$(basename "$(dirname "$file")")"
cp "$file" "upload/SHA256SUMS-${dir}.txt"
done
ls -lh upload
- name: Create release
uses: softprops/action-gh-release@v2
with:
files: upload/*