-
Notifications
You must be signed in to change notification settings - Fork 51
82 lines (72 loc) · 2.56 KB
/
integration.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
name: Integration tests
on:
pull_request:
push:
branches:
- 'main'
- '*-release'
env:
DATABASE_NAME: TestDatabase
DATABASE_USERNAME: TestUsername
DATABASE_PASSWORD: TestPassword
BUCKET_URL: https://ace-minio-1.loris.ca:9000
BUCKET_NAME: loris-rb-data
BUCKET_ACCESS_KEY: lorisadmin-ro
BUCKET_SECRET_KEY: Tn=qP3LupmXnMuc
jobs:
docker:
name: Docker
runs-on: ubuntu-latest
steps:
- name: Check out LORIS-MRI
uses: actions/checkout@v4
- name: Clone the LORIS core repository
run: git clone https://github.com/aces/Loris.git ./test/Loris
- name: Overwrite Raisinbread SQL files
run: cp -f ./test/RB_SQL/*.sql ./test/Loris/raisinbread/RB_files/
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Docker database image
uses: docker/build-push-action@v6
with:
context: .
file: ./test/db.Dockerfile
build-args: |
DATABASE_NAME=${{ env.DATABASE_NAME }}
DATABASE_USER=${{ env.DATABASE_USERNAME }}
DATABASE_PASS=${{ env.DATABASE_PASSWORD }}
tags: loris-db
load: true
cache-from: type=gha,scope=loris-db
cache-to: type=gha,scope=loris-db
- name: Build Docker MRI image
uses: docker/build-push-action@v6
with:
context: .
file: ./test/mri.Dockerfile
build-args: |
DATABASE_NAME=${{ env.DATABASE_NAME }}
DATABASE_USER=${{ env.DATABASE_USERNAME }}
DATABASE_PASS=${{ env.DATABASE_PASSWORD }}
BUCKET_URL=${{ env.BUCKET_URL }}
BUCKET_NAME=${{ env.BUCKET_NAME }}
BUCKET_ACCESS_KEY=${{ env.BUCKET_ACCESS_KEY }}
BUCKET_SECRET_KEY=${{ env.BUCKET_SECRET_KEY }}
tags: loris-mri
load: true
cache-from: type=gha,scope=loris-mri
cache-to: type=gha,mode=max,scope=loris-mri
# TODO: Move as much as possible of this in the MRI dockerfile
- name: Mount imaging files S3 bucket
run: |
sudo apt-get update
sudo apt-get install -y s3fs fuse kmod
sudo modprobe fuse
sudo mkdir /data-imaging
touch .passwd-s3fs
chmod 600 .passwd-s3fs
echo ${{ env.BUCKET_ACCESS_KEY }}:${{ env.BUCKET_SECRET_KEY }} > .passwd-s3fs
sudo s3fs ${{ env.BUCKET_NAME }} /data-imaging -o passwd_file=.passwd-s3fs -o url=${{ env.BUCKET_URL }} -o use_path_request_style -o allow_other
ls /data-imaging
- name: Run integration tests
run: docker compose --file ./test/docker-compose.yml run mri pytest -s python/tests/integration