-
Notifications
You must be signed in to change notification settings - Fork 0
151 lines (128 loc) · 4.03 KB
/
e2e-test.yaml
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
name: fluxqueue test
on:
pull_request: {}
workflow_dispatch:
jobs:
build-fluxqueue:
permissions:
packages: write
env:
container: ghcr.io/converged-computing/fluxqueue
runs-on: ubuntu-latest
name: build fluxqueue controller
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ^1.22
- name: Build Container
run: make docker-build
- name: Save Containers
run: docker save ${{ env.container }} | gzip > fluxqueue_latest.tar.gz
- name: Upload container artifact
uses: actions/upload-artifact@v4
with:
name: fluxqueue
path: fluxqueue_latest.tar.gz
build-postgres:
permissions:
packages: write
env:
container: ghcr.io/converged-computing/fluxqueue-postgres
runs-on: ubuntu-latest
name: build postgres
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ^1.22
- name: Build Container
run: make build-postgres
- name: Save Containers
run: docker save ${{ env.container }} | gzip > fluxqueue_postgres.tar.gz
- name: Upload container artifact
uses: actions/upload-artifact@v4
with:
name: fluxqueue-postgres
path: fluxqueue_postgres.tar.gz
build-scheduler:
permissions:
packages: write
env:
container: ghcr.io/converged-computing/fluxqueue-scheduler
runs-on: ubuntu-latest
name: build scheduler
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ^1.22
- name: Build Container
run: make build-scheduler
- name: Save Containers
run: docker save ${{ env.container }} | gzip > fluxqueue_scheduler.tar.gz
- name: Upload container artifact
uses: actions/upload-artifact@v4
with:
name: fluxqueue-scheduler
path: fluxqueue_scheduler.tar.gz
test-fluxqueue:
needs: [build-fluxqueue, build-scheduler, build-postgres]
env:
registry: ghcr.io/converged-computing
namespace: fluxqueue-system
controller_container: ghcr.io/flux-framework/fluxqueue
scheduler_container: ghcr.io/flux-framework/fluxqueue-scheduler
postgres_container: ghcr.io/flux-framework/fluxqueue-postgres
runs-on: ubuntu-latest
name: test fluxqueue
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version: ^1.22
- name: Download controller artifact
uses: actions/download-artifact@v4
with:
name: fluxqueue
path: /tmp
- name: Download scheduler artifact
uses: actions/download-artifact@v4
with:
name: fluxqueue-scheduler
path: /tmp
- name: Download postgres artifact
uses: actions/download-artifact@v4
with:
name: fluxqueue-postgres
path: /tmp
- name: Make Space For Build
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
- name: Load Docker images
run: |
ls /tmp/*.tar.gz
docker load --input /tmp/fluxqueue_latest.tar.gz
rm /tmp/fluxqueue_latest.tar.gz
docker load --input /tmp/fluxqueue_scheduler.tar.gz
rm /tmp/fluxqueue_scheduler.tar.gz
docker load --input /tmp/fluxqueue_postgres.tar.gz
rm /tmp/fluxqueue_postgres.tar.gz
docker image ls -a | grep fluxqueue
- name: Create Kind Cluster
uses: helm/[email protected]
with:
cluster_name: kind
kubectl_version: v1.28.2
version: v0.20.0
config: ./.github/test-kind-config.yaml
- name: Install Cert Manager
run: |
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.2/cert-manager.yaml
sleep 20
- name: Deploy Fluxqueue
run: ./hack/quick-deploy-kind.sh ${{ env.registry }} ${{ env.namespace }}
- name: Test Fluxqueue
run: /bin/bash ./.github/test.sh ${{ env.registry }} ${{ env.namespace }}