@@ -2,6 +2,11 @@ name: 'Unit Tests'
22on :
33 - push
44
5+ env :
6+ ACCESS_KEY_ID : user
7+ ACCESS_SECRET_ACCESS_KEY : password
8+ DEFAULT_BUCKET : mylake
9+
510jobs :
611 unittest :
712 runs-on : ubuntu-latest
@@ -14,23 +19,62 @@ jobs:
1419 - 3.13
1520
1621 services :
17- rabbitmq :
18- image : rabbitmq
19- env :
20- RABBITMQ_DEFAULT_USER : guest
21- RABBITMQ_DEFAULT_PASS : guest
22- ports :
23- - 5672:5672
24-
25- redis :
26- image : redis
22+ catalog :
23+ image : tabulario/iceberg-rest
2724 options : >-
28- --health-cmd "redis-cli ping "
25+ --health-cmd "curl http://localhost:8181/health "
2926 --health-interval 10s
3027 --health-timeout 5s
3128 --health-retries 5
29+ # env:
30+ # AWS_ACCESS_KEY_ID: ${{ env.ACCESS_KEY_ID }}
31+ # AWS_SECRET_ACCESS_KEY: ${{ env.ACCESS_SECRET_ACCESS_KEY }}
32+ # AWS_REGION: us-east-1
33+ # WAREHOUSE: s3://${{ env.DEFAULT_BUCKET }}
34+ # CATALOG_WAREHOUSE: s3://${{ env.DEFAULT_BUCKET }}
35+ # CATALOG_IO__IMPL: org.apache.iceberg.aws.s3.S3FileIO
36+ # CATALOG_S3_ENDPOINT: http://s3:9000
37+ # CATALOG_S3_PATH__STYLE__ACCESS: "true"
38+ # CATALOG_DEFAULT__NAMESPACE: default
39+ # CATALOG_JDBC_USER: user
40+ # CATALOG_JDBC_PASSWORD: pass
41+ # CATALOG_URI: jdbc:sqlite:file:/tmp/pyiceberg_catalog.db
3242 ports :
33- - 6379:6379
43+ - 8181:8181
44+
45+ # s3:
46+ # image: bitnami/minio:latest
47+ # env:
48+ # MINIO_ROOT_USER: ${{ env.ACCESS_KEY_ID }}
49+ # MINIO_ROOT_PASSWORD: ${{ env.ACCESS_SECRET_ACCESS_KEY }}
50+ # MINIO_ACCESS_KEY: ${{ env.ACCESS_KEY_ID }}
51+ # MINIO_SECRET_KEY: ${{ env.ACCESS_SECRET_ACCESS_KEY }}
52+ # options: >-
53+ # --health-cmd "curl http://localhost:9000/minio/health/live"
54+ # --health-interval 10s
55+ # --health-timeout 5s
56+ # --health-retries 5
57+ # ports:
58+ # - 9000:9000
59+ # - 9001:9001
60+
61+ # rabbitmq:
62+ # image: rabbitmq
63+ # env:
64+ # RABBITMQ_DEFAULT_USER: guest
65+ # RABBITMQ_DEFAULT_PASS: guest
66+ # ports:
67+ # - 5672:5672
68+
69+ # redis:
70+ # image: redis
71+ # options: >-
72+ # --health-cmd "redis-cli ping"
73+ # --health-interval 10s
74+ # --health-timeout 5s
75+ # --health-retries 5
76+ # ports:
77+ # - 6379:6379
3478
3579 steps :
3680 - if : github.server_url != 'https://github.com'
@@ -59,13 +103,34 @@ jobs:
59103 - name : Type check
60104 run : mypy provisioner --check-untyped-defs
61105
106+ - name : Install minioclient
107+ env :
108+ MC_HOST_servc : http://${{ env.ACCESS_KEY_ID }}:${{ env.ACCESS_SECRET_ACCESS_KEY }}@${{ github.server_url != 'https://github.com' && 's3' || 'localhost' }}:9000
109+ run : |
110+ sudo apt-get update && sudo apt-get install -y wget
111+
112+ wget https://dl.min.io/client/mc/release/linux-amd64/mc
113+ chmod +x mc
114+ sudo mv mc /usr/local/bin
115+
116+ mc mb servc/${{ env.DEFAULT_BUCKET }}
117+
62118 - name : Run tests
63119 env :
120+ CONF__BLOBPROVISIONER__S3_ACCESS_KEY_ID : ${{ env.ACCESS_KEY_ID }}
121+ CONF__BLOBPROVISIONER__S3_SECRET_ACCESS_KEY : ${{ env.ACCESS_SECRET_ACCESS_KEY }}
122+ CONF__BLOBPROVISIONER__S3_ENDPOINT : http://${{ github.server_url != 'https://github.com' && 's3' || 'localhost' }}:9000
123+ CONF__BLOBPROVISIONER__S3_BUCKET : ${{ env.DEFAULT_BUCKET }}
124+ CONF__BLOBPROVISIONER__CATALOG_URI : http://${{ github.server_url != 'https://github.com' && 'catalog' || 'localhost' }}:8181
125+ CONF__LAKE__DATABASE : servc
64126 CONF__LAKE__CATALOG_NAME : default
65- CONF__LAKE__CATALOG_PROPERTIES__TYPE : sql
66- CONF__LAKE__CATALOG_PROPERTIES__URI : sqlite :////tmp/lake.db
127+ CONF__LAKE__CATALOG_PROPERTIES__TYPE : rest
128+ CONF__LAKE__CATALOG_PROPERTIES__URI : http ://${{ github.server_url != 'https://github.com' && 'catalog' || 'localhost' }}:8181
67129 CONF__LAKE__CATALOG_PROPERTIES__INIT_CATALOG_TABLES : true
68- CONF__LAKE__CATALOG_PROPERTIES__WAREHOUSE : file:///tmp/warehouse
130+ CONF__LAKE__CATALOG_PROPERTIES__WAREHOUSE : s3://${{ env.DEFAULT_BUCKET }}
131+ CONF__LAKE__CATALOG_PROPERTIES__S3__ACCESS_KEY_ID : ${{ env.ACCESS_KEY_ID }}
132+ CONF__LAKE__CATALOG_PROPERTIES__S3__SECRET_ACCESS_KEY : ${{ env.ACCESS_SECRET_ACCESS_KEY }}
133+ CONF__LAKE__CATALOG_PROPERTIES__S3__ENDPOINT : http://${{ github.server_url != 'https://github.com' && 's3' || 'localhost' }}:9000
69134 TEST_QUEUE : test
70135 CACHE_URL : redis://${{ github.server_url != 'https://github.com' && 'redis' || 'localhost' }}
71136 BUS_URL : amqp://guest:guest@${{ github.server_url != 'https://github.com' && 'rabbitmq' || 'localhost' }}
0 commit comments