-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.gitlab-ci.yml
109 lines (95 loc) · 2.48 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
# Copyright (c) 2016-2019 Tuncer Ayaz
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
variables:
GIT_DEPTH: "3"
DEFAULT_IMAGE: erlang:22-alpine
pages:
stage: deploy
image: $DEFAULT_IMAGE
before_script:
- apk add --update make emacs texinfo ca-certificates curl
- update-ca-certificates
- cd pages
- ./install
- cd ..
script:
- make pages
- mv pages/out public
artifacts:
paths:
- public
only:
- master
cache:
key: $CI_PROJECT_PATH
paths:
- _build/default/rebar3_*_plt
.build_job_template: &build_job_definition
stage: build
image: $DEFAULT_IMAGE
before_script:
- apk add --update make
script:
- make ci
.artifact_paths_template: &artifact_paths_defitinion
paths:
- ebin
- doc
default-build:
<<: *build_job_definition
artifacts:
name: "$CI_PROJECT_NAME-ci-${CI_BUILD_REF_NAME}"
<<: *artifact_paths_defitinion
# Temporary artifacts for non-release builds are removed after a month
# because they are just for use in test jobs.
expire_in: 1 month
release:
<<: *build_job_definition
artifacts:
name: "$CI_PROJECT_NAME-${CI_BUILD_REF_NAME}"
<<: *artifact_paths_defitinion
only:
- tags
.test_job_template: &test_job_definition
stage: test
script:
- make ci
test:18:
<<: *test_job_definition
image: erlang:18
test:19:
<<: *test_job_definition
image: erlang:19
test:20:
<<: *test_job_definition
before_script:
- apk add --update make
image: erlang:20-alpine
test:21:
<<: *test_job_definition
before_script:
- apk add --update make
image: erlang:21-alpine
test:22:
<<: *test_job_definition
before_script:
- apk add --update make
image: $DEFAULT_IMAGE
test:dialyze:
stage: test
image: $DEFAULT_IMAGE
before_script:
- apk add --update make
script:
- make ci-dialyze