-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
106 lines (97 loc) · 3.09 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
stages:
- install
- test
- build
- deploy
install_project:
stage: install
# Please notice that we are using a different image just for easier syntax in the testing of the building and
# testing of the repository
image: continuumio/miniconda3:latest
script:
- . /opt/conda/etc/profile.d/conda.sh
- conda env create -f environment.yml
- conda activate escape_template
- pip install .
- square_number -h
- square_number -i -12.5
only:
- branches
test_project:
stage: test
image: python:3.6-buster
script:
- pip install pytest
- pip install .
- pytest .
only:
- branches
test_docker_registry:
# Test of last container in registry
stage: test
image: gitlab-registry.in2p3.fr/escape2020/wp3/template_project_escape/escape_template_project:v1.0
script:
- source activate escape_template
- square_number -i -12.5
except:
- master
- tags
build_singularity_image:
# Example of Singularity image (of the project) built during the CI
stage: build
image: singularityware/singularity:gitlab-2.6
script:
# Build the container!
- /bin/bash .singularityci/build.sh Singularity/Singularity
- mkdir -p build && cp Singularity/*.simg build
- mkdir -p build && cp Singularity/Singularity* build
artifacts:
paths:
- build/Singularity.simg
- build/Singularity
only:
- tags
build_docker_image:
# Example of Docker container (of the project) built - and uploaded to a registry - during the CI
stage: build
image: docker:19.03.12
services:
- docker:19.03.12-dind
before_script:
- cat /etc/os-release # "Alpine Linux v3.12"
- apk add git
- export LAST_RELEASE=`git ls-remote --tags --refs --sort="v:refname" $CI_PROJECT_URL.git | tail -n1 | sed 's/.*\///'`
- echo $LAST_RELEASE
script:
- cd Docker
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:$LAST_RELEASE .
- docker push $CI_REGISTRY_IMAGE:$LAST_RELEASE
# --> The following code snippet IS just an exploratory / WIP section
# Save docker image into a file to be uploaded in next stage
- docker save -o Docker_image_ESCAPE_template_project_$LAST_RELEASE.tar $CI_REGISTRY_IMAGE:$LAST_RELEASE
- ls
- cd .. && mkdir -p build && cp Docker/*.tar build
- ls build
artifacts:
paths:
- build/Docker_image_ESCAPE_template_project_*.tar
only:
- tags
deploy_zenodo:
stage: deploy
image: gitlab-registry.in2p3.fr/escape2020/wp3/zenodoci:v1.2
# The `dependencies` key (and field) is added to this stage ONLY because we have created in a previous stage some other artifacts
dependencies:
- build_singularity_image
- build_docker_image
before_script:
- test_connection_zenodo --token $ZENODO_TOKEN --sandbox False -p $CI_PROJECT_DIR
script:
- mkdir -p build
- parse_last_release_git.sh $CI_PROJECT_NAME $CI_PROJECT_URL
- if [[ -f ./codemeta.json ]]; then cp ./codemeta.json ./build; fi
- ls ./build
- upload_new_version_deposit -t $ZENODO_TOKEN -s False -i ./build -id $ZENODO_PROJECT_ID
only:
- tags