-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
133 lines (110 loc) · 3.32 KB
/
build.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: Build + Publish
on:
push:
branches:
- vega
jobs:
build:
name: Build
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- uses: actions/checkout@v3
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: Set Build Variables
run: |
echo "REL_VERSION=3.0.0-alpha.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
- name: Disable DEV Flag + Set Version
working-directory: server
run: |
sudo apt-get install jq -y
mv package.json pkg-temp.json
jq --arg vs "$REL_VERSION_STRICT" -r '. + {dev:false, version:$vs}' pkg-temp.json > package.json
rm pkg-temp.json
cat package.json
- name: Fetch Latest Locales
uses: localazy/download@v1
with:
read_key: ${{ secrets.LOCALAZY_KEY_READ }}
- name: Build Assets
working-directory: ux
run: |
npm ci --audit=false --fund=false
npm run build
- name: Build Blocks
working-directory: blocks
run: |
npm ci --audit=false --fund=false
npm run build
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push Docker images
uses: docker/build-push-action@v4
with:
context: .
file: dev/build/Dockerfile
provenance: true
push: true
# cache-from: type=gha
# cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/requarks/wiki:3.0.0-alpha
ghcr.io/requarks/wiki:${{ env.REL_VERSION }}
- name: Prepare build archive
run: |
mkdir -p _dist
cp -R assets _dist/assets
cp -R server _dist/server
cp LICENSE _dist/LICENSE
cp config.sample.yml _dist/config.sample.yml
cd _dist/server
npm ci --omit=dev --audit=false --fund=false
cd -
find ./_dist/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C ./_dist/ -T -
- name: Upload Build Artifact
uses: actions/upload-artifact@v3
with:
name: build
path: wiki-js.tar.gz
windows:
name: Windows Build
runs-on: windows-latest
needs: [build]
steps:
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: Download Build Artifact
uses: actions/download-artifact@v3
with:
name: build
path: build
- name: Extract Build
run: |
mkdir -p win
tar -xzf $env:GITHUB_WORKSPACE\build\wiki-js.tar.gz -C $env:GITHUB_WORKSPACE\win --exclude=server/node_modules
- name: Install Dependencies
run: npm ci --omit=dev --audit=false --fund=false
working-directory: win\server
- name: Create Bundle
shell: pwsh
run: Compress-Archive -Path $env:GITHUB_WORKSPACE\win\* -DestinationPath wiki-js-windows.zip
- name: Upload Build Artifact
uses: actions/upload-artifact@v3
with:
name: build-win
path: wiki-js-windows.zip