-
Notifications
You must be signed in to change notification settings - Fork 2
146 lines (136 loc) · 4.16 KB
/
build.yaml
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: build
on: workflow_dispatch
jobs:
build-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
- run: |
set -eux
echo "machine github.krafton.com login xtrm-cicd-bot password ${{ secrets.GHES_GITHUB_TOKEN }}" >> ~/.netrc
name: Login GHES
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
install-only: true
- run: |
go mod download
working-directory: backend
- run: |
make build-backend
working-directory: electron-app
name: Build-Backend
- uses: actions/upload-artifact@v2
with:
name: build-artifact-backend
path: |
backend/dist/**
if-no-files-found: error
retention-days: 1
build-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install --global pnpm
pnpm install
working-directory: electron-app
- run: |
make build-frontend
working-directory: electron-app
name: Build-Frontend
- uses: actions/upload-artifact@v2
with:
name: build-artifact-frontend
path: |
electron-app/release/**
if-no-files-found: error
retention-days: 1
package:
needs:
- build-backend
- build-frontend
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
include:
- os: ubuntu-latest
artifactName: linux
- os: macos-latest
artifactName: darwin
- os: windows-latest
artifactName: windows
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: build-artifact-backend
path: backend/dist/
- uses: actions/download-artifact@v2
with:
name: build-artifact-frontend
path: electron-app/release/
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install --global pnpm
pnpm install
working-directory: electron-app
- run: |
make copy-backend-to-package
make package-${{ matrix.artifactName }}
working-directory: electron-app
shell: bash
name: Package
- uses: actions/upload-artifact@v2
with:
name: package-artifact-${{ matrix.artifactName }}
path: |
electron-app/release/build/*.zip
electron-app/release/build/*.dmg
electron-app/release/build/*.AppImage
electron-app/release/build/*.exe
electron-app/release/build/*.tar.gz
if-no-files-found: warn
retention-days: 1
publish:
needs:
- package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: package-artifact-windows
path: ./packages
- uses: actions/download-artifact@v2
with:
name: package-artifact-darwin
path: ./packages
- uses: actions/download-artifact@v2
with:
name: package-artifact-linux
path: ./packages
- run: |
ls -al packages
VERSION=$(jq -r -c '.version' ./electron-app/package.json)
gh release create v$VERSION --repo=https://github.com/pubg/kubeconfig-updater --title=v$VERSION
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-mac-universal.zip
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-linux-*
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-win-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}