forked from itchio/itch
/
.gitlab-ci.yml
160 lines (146 loc) · 2.45 KB
/
.gitlab-ci.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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
stages:
- build # babel, node-sass etc.
- package # .rpm, .deb, .dmg., .zip
- deploy # github releases, bintray, AUR
# Gitbook documentation
book:
stage: build
tags:
- dropsy
script:
- release/ci-book.js
# Unit tests
test:
stage: build
tags:
- linux
script:
- release/ci-test.js
except:
- tags
# JavaScript standard formatting
lint:
stage: build
tags:
- linux
script:
- release/ci-lint.js
except:
- tags
# compile javascript & scss using babel & node-sass
compile:
stage: build
tags:
- linux
script:
- release/ci-compile.js
only:
- tags
artifacts:
paths:
- stage.tar.gz
# generate .desktop file for Linux
generate-linux-extras:
stage: build
tags:
- linux
script:
- release/ci-generate-linux-extras.js
only:
- tags
artifacts:
paths:
- linux-extras
# .tar.gz, .rpm and .deb
package-linux-386:
stage: package
tags:
- linux
script:
- release/ci-package.js linux 386
only:
- tags
artifacts:
paths:
- packages
dependencies:
- compile
- generate-linux-extras
# .tar.gz, .rpm and .deb
package-linux-amd64:
stage: package
tags:
- linux
script:
- release/ci-package.js linux amd64
only:
- tags
artifacts:
paths:
- packages
dependencies:
- compile
- generate-linux-extras
# .dmg and .zip
package-darwin-amd64:
stage: package
tags:
- darwin
script:
- release/ci-package.js darwin amd64
only:
- tags
artifacts:
paths:
- packages
dependencies:
- compile
package-windows-386:
stage: package
tags:
- windows
only:
- tags
script:
- release/ci-package.js windows 386
artifacts:
paths:
- packages
dependencies:
- compile
# ArchLinux user repository
package-aur:
stage: package
tags:
- archlinux
only:
- tags
script:
- release/ci-package-aur.js
# GitHub releases are used for Squirrel.Windows & Squirrel.Mac,
# along with direct downloads
deploy-github:
stage: deploy
tags:
- linux
only:
- tags
script:
- release/ci-deploy-github.js
dependencies:
- package-linux-386
- package-linux-amd64
- package-windows-386
- package-darwin-amd64
# We have a YUM (rpm) & APT (deb) repository on bintray
deploy-bintray:
stage: deploy
tags:
- linux
only:
- tags
script:
- release/ci-deploy-bintray.js
dependencies:
- package-linux-386
- package-linux-amd64