-
Notifications
You must be signed in to change notification settings - Fork 0
/
Taskfile.yml
198 lines (187 loc) · 5.66 KB
/
Taskfile.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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
version: 3
dotenv:
- ".env"
tasks:
start_openbis:
preconditions:
- sh: type -p docker
msg: "docker is not installed. Please install docker first"
requires:
vars: [DOCKER_LOCAL_HOST, OPENBIS_PORT]
env:
DOCKER_HOST: "{{.DOCKER_LOCAL_HOST}}"
cmds:
- docker compose up openbis -d
- until ./utils/check_openbis.sh https://localhost:${OPENBIS_PORT}; do sleep 1; done
status:
- docker compose ps | grep openbis
- ./utils/check_openbis.sh https://localhost:${OPENBIS_PORT}
#TODO fix this part
#If it does not work, just download the tool from here:
#https://gitlab.empa.ch/openbis-tools/instance-io/-/packages/57 and place it in ./utils/ of the project with the name instance-io.jar
cleanup:
requires:
vars: [DOCKER_LOCAL_HOST, OPENBIS_PORT]
env:
DOCKER_HOST: "{{.DOCKER_LOCAL_HOST}}"
cmds:
- docker compose down -v
download_jar:
dir: ./utils
requires:
vars: [TOKEN]
cmds:
- 'curl -L -H "Private-Token: {{.TOKEN}}" https://gitlab.empa.ch/api/v4/projects/1553/packages/maven/ch/empa/openbisio/app/0.1.3/app-0.1.3.jar --output instance-io.jar'
status:
- test ./utils/instance-io.jar
export_schema:
preconditions:
- sh: type -p java
msg: "java is not installed. Please install java first"
requires:
vars: [OPENBIS_SOURCE_USER, OPENBIS_SOURCE_PASSWORD]
deps:
- download_jar
cmds:
- java -jar ./utils/instance-io.jar dump ./schemas/schema_402.json https://openbis-empa-lab402.ethz.ch/ {{.OPENBIS_SOURCE_USER}} {{.OPENBIS_SOURCE_PASSWORD}}
status:
- test ./schemas/schema_402.json
cleanup_schema:
preconditions:
- sh: type -p jq
msg: "jq is not installed. Please install jq first"
deps:
- export_schema
sources:
- ./schemas/schema_402.json
generates:
- ./schemas/schema_402_clean.json
cmds:
- cat ./schemas/schema_402.json | jq '.spaces |= map(select(.code | contains("POLPRO")))' | more > ./schemas/schema_402_clean.json
##TODO fix this part: improve the checking whether the schema is already imported
import_schema:
deps:
- cleanup_schema
- start_openbis
- download_jar
cmds:
- until ./utils/check_openbis.sh https://localhost:${OPENBIS_PORT}; do sleep 1; done
- java -jar ./utils/instance-io.jar load ./schemas/schema_402_clean.json https://localhost:${OPENBIS_PORT} admin changeit
- touch .schema_imported
status:
- test -f .schema_imported
dev-install:
preconditions:
- sh: type -p yarn
msg: "yarn is not installed. Please install yarn first"
dir: ./services/app
sources:
- ./services/app/package.json
generates:
- ./services/app/yarn.lock
cmds:
- yarn install
status:
- test ./services/app/yarn.lock
run: once
dev:
preconditions:
- sh: type -p yarn
msg: "yarn is not installed. Please install yarn first"
env:
OPENBIS_HOST: "https://{{.OPENBIS_URL}}:{{.OPENBIS_PORT}}"
deps:
- dev-install
- import_schema
dir: ./services/app
cmds:
- echo ${OPENBIS_HOST}
- yarn run vite-dev
dev-docker:
preconditions:
- sh: type -p docker compose
msg: "docker compose is not installed. Please install docker first"
sources:
- ./services/app/Dockerfile.dev
deps:
- start_openbis
- import_schema
dir: ./services/app
cmds:
- docker compose build dev
- docker compose up dev -d --force-recreate
test-docker:
sources:
- ./services/app/Dockerfile.dev
dir: ./services/app
cmds:
- docker compose build dev
- docker compose run dev yarn run test
test:
deps:
- dev-install
dir: ./services/app
cmds:
- yarn run test
dump_local_schema:
deps:
- download_jar
- start_openbis
cmds:
- java -jar ./utils/instance-io.jar dump ./schemas/schema_402_local.json https://localhost:${OPENBIS_PORT} admin {{.OPENBIS_PASSWORD}}
status:
- test ./schemas/schema_402_local.json
serve:
requires:
vars: [DOCKER_LOCAL_HOST]
env:
DOCKER_HOST: "{{.DOCKER_LOCAL_HOST}}"
deps:
- import_schema
- start_openbis
dir: ./services/app
cmds:
- docker compose build app
- docker compose up app -d --force-recreate
reload_caddy:
deps:
- serve
cmds:
- docker compose exec -it app caddy reload --config /etc/caddy/Caddyfile
test_serve:
deps:
- serve
dir: ./services/app
cmds:
- sleep 2
- curl -k -X POST 'https://localhost:8080/openbis/openbis/openbis/rmi-application-server-v3.json'
- curl -k 'https://localhost:8080/login'
- curl -k -X POST 'https://localhost:8080/openbis-empa-lab402/openbis/openbis/rmi-application-server-v3.json'
openbis_remote:
dir: ./services/app
requires:
vars: [DOCKER_REMOTE_HOST]
env:
DOCKER_HOST: "{{.DOCKER_REMOTE_HOST}}"
cmds:
- docker compose up openbis -d
- java -jar ./utils/instance-io.jar load ./schemas/schema_402_local.json https://openbis.scit.empa.ch:${OPENBIS_PORT} admin {{.OPENBIS_PASSWORD}}
serve_remote:
# deps:
# - add_context
requires:
vars: [DOCKER_REMOTE_HOST]
env:
DOCKER_HOST: "{{.DOCKER_REMOTE_HOST}}"
dir: ./services/app
cmds:
- docker build . -t app
- docker stop app || true
- docker rm app || true
- docker run -d --name app -p 8000:80 app || true
# - docker compose run app
gitlab_build_local:
env:
DOCKER_HOST: tcp://localhost:2375
cmds:
- gitlab-runner exec docker build-docker --env DOCKER_HOST={{.DOCKER_HOST}}