-
Notifications
You must be signed in to change notification settings - Fork 37
/
.gitlab-ci_module.yml
83 lines (76 loc) · 2.41 KB
/
.gitlab-ci_module.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
stages:
- build
- deploy
- test
image: openmole/build
assemble:
stage: build
artifacts:
paths:
- ./openmole/site/
- ./openmole/bin/tests/target/assemble/tests/
- ./openmole/bin/docker/target/docker
script:
#- bash -x build.sh
#- '(cd openmole && sbt test)' # Metaspace error to be solved
- git lfs fetch
- '(cd ./build-system && sbt --version)'
- '(cd ./build-system && sbt publishLocal)'
- '(cd ./libraries && sbt publishLocal)'
- '(cd ./openmole && ./generateSite $PWD/site)'
- '(cd ./openmole && sbt "project docker" generateDocker "project tests" assemble)'
publish-next:
stage: deploy
environment:
name: next-site
dependencies:
- assemble
resource_group: next
only:
variables:
- $CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH
script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- cat $SSH_PRIVATE_KEY >~/.ssh/identity
- chmod 400 ~/.ssh/identity
- ssh-keyscan -p 9000 docker.openmole.org > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- echo "put -r ./openmole/site/* next" >./tonext
- sftp -i ~/.ssh/identity -b ./tonext -P 9000 [email protected]
publish-docker:
stage: deploy
dependencies:
- assemble
environment:
name: docker-dev
only:
variables:
- $CI_DEFAULT_BRANCH == $CI_COMMIT_BRANCH
services:
- docker:dind
variables:
DOCKER_TLS_CERTDIR: ""
DOCKER_HOST: tcp:https://docker:2375
before_script:
- '(cat $DOCKER_TOKEN | docker login -u "$DOCKER_USER" --password-stdin)'
resource_group: docker
script:
- docker info
- (cd ./openmole && version=$(cat version.sbt | grep version | cut -d' ' -f 5 | sed 's\"\\g') && cd ./bin/docker/target/docker && docker build -t openmole/openmole:$version -t openmole/openmole:latest . && docker push openmole/openmole:$version && docker push openmole/openmole:latest)
test-site:
stage: test
dependencies:
- assemble
script:
- mkdir extracted
- (cd extracted && tar -xvzf ../openmole/site/openmole.tar.gz)
- ./extracted/openmole/openmole --test-compile openmole/bin/tests/target/assemble/tests/
unit-tests:
stage: test
script:
- '(cd ./build-system && sbt --version)'
- '(cd ./build-system && sbt publishLocal)'
- '(cd ./libraries && sbt publishLocal)'
- '(cd ./openmole && sbt -J-Xmx4G test)'