-
Notifications
You must be signed in to change notification settings - Fork 2
184 lines (176 loc) · 9.26 KB
/
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
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
name: CI
on:
push:
branches:
- main
- "release-*"
pull_request:
branches:
- main
- "release-*"
concurrency:
group: trustify-operator-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
keycloak:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- run: |
npm clean-install --ignore-scripts
npm run build-keycloak-theme
working-directory: keycloak
rancher:
runs-on: ubuntu-latest
strategy:
matrix:
kubernetes_version:
[
latest,
v1.23.17-k3s1,
v1.24.17-k3s1,
v1.25.16-k3s4,
v1.26.15-k3s1,
v1.27.15-k3s2,
v1.28.11-k3s2,
]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: Test
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes_version }}
run: mvn verify
kind:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: Install Kind
run: |
go install sigs.k8s.io/[email protected]
make start-kind
- name: Install OLM
run: |
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.22.0/install.sh | bash -s v0.30.0
- name: Test
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes_version }}
run: |
export HOST_KUBERNETES_CONFIG_FILE=/home/$USER/.kube/config
echo "Using ${HOST_KUBERNETES_CONFIG_FILE} as host k8s"
mvn verify
minikube:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: start minikube
uses: trustification/trustify-operator/.github/actions/start-minikube@main
with:
memory: "max"
cpus: "max"
- name: Install OLM
run: |
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.22.0/install.sh | bash -s v0.30.0
- name: Test
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes_version }}
run: |
export HOST_KUBERNETES_CONFIG_FILE=/home/$USER/.kube/config
echo "Using ${HOST_KUBERNETES_CONFIG_FILE} as host k8s"
mvn verify
crc:
runs-on: ubuntu-latest
strategy:
matrix:
preset: [ "openshift" ]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "21"
cache: "maven"
- name: Install required virtualization software
run: |
sudo apt-get update
sudo apt install qemu-kvm libvirt-daemon libvirt-daemon-system virtiofsd
sudo usermod -a -G libvirt $USER
- name: Remove unwanted stuff to free up disk image
run: |
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo swapoff -a
sudo rm -f /mnt/swapfile
df -h
- name: Download crc
run: |
wget https://developers.redhat.com/content-gateway/file/pub/openshift-v4/clients/crc/2.44.0/crc-linux-amd64.tar.xz
mkdir -p bin/ && tar -xJf crc-linux-amd64.tar.xz --strip-components=1 -C bin/
sudo mv ./bin/crc /usr/local/bin/crc && rm -r bin/
- name: Set the crc config
run: |
echo eyJhdXRocyI6eyJjbG91ZC5vcGVuc2hpZnQuY29tIjp7ImF1dGgiOiJiM0JsYm5Ob2FXWjBMWEpsYkdWaGMyVXRaR1YySzI5amJWOWhZMk5sYzNOZk16RTFaRE16TWpJM09HVXpOR000WTJKbFkyVmxOMlU0TVRoa1pEazNNRGc2VERKSldUVlVUVlZQUTA5VlRraFdTRTFRUjBaRFdEaFBTRUpVTVVaU1RrZEtOMU5EUVZFMlFrOUlPRWRHVERjMVVFeE9UVTB5VFRsUldFZzFSbGMyT1E9PSIsImVtYWlsIjoidHJ1c3QuZ2l0LmJvdEBnbWFpbC5jb20ifSwicXVheS5pbyI6eyJhdXRoIjoiYjNCbGJuTm9hV1owTFhKbGJHVmhjMlV0WkdWMksyOWpiVjloWTJObGMzTmZNekUxWkRNek1qSTNPR1V6TkdNNFkySmxZMlZsTjJVNE1UaGtaRGszTURnNlRESkpXVFZVVFZWUFEwOVZUa2hXU0UxUVIwWkRXRGhQU0VKVU1VWlNUa2RLTjFORFFWRTJRazlJT0VkR1REYzFVRXhPVFUweVRUbFJXRWcxUmxjMk9RPT0iLCJlbWFpbCI6InRydXN0LmdpdC5ib3RAZ21haWwuY29tIn0sInJlZ2lzdHJ5LmNvbm5lY3QucmVkaGF0LmNvbSI6eyJhdXRoIjoiZkhWb1l5MXdiMjlzTFRSak9HTTVOREV5TFRJeFltRXROREUxWmkwNU5UQmxMVEk1TXpWak9HRXhPREk1TmpwbGVVcG9Za2RqYVU5cFNsTlZlbFY0VFdsS09TNWxlVXA2WkZkSmFVOXBTbXhPYWxGNldsUlZNVTFIUlRKT1YwVXdUVEpKTlU5VWFHcFpiVlpzV2tSb2JFMUhSbXhOYW1oc1drTktPUzVuVVRWV05EZHNUalo1U0RCNFFWSnlSRkJPTVhKbFUwNHhTblJaY1ZwdWNqaHJaalZHYkhJd1RWZzNURTFuUTNWSVRqbENRemxDZUc5UFkzQmxhRmgwWTJ0WmFEZE1TMDFKTmpsb1UyVk1jbmRQTFRGT2MwWldhbWxtVUU5QlptRkxUSEl3ZURGeFN5MXZVa0pwWlRKRk0zRlRhRE5YWVVjNGFVOWpkVWR1U0haTlEzWm1NQzExZUZoMmRWRmxiM0o2WDFNM1dHWmFZbGRITW0xWFZFeHNia1JqVlVwb1ptUjRTa1Z3YUdaMllubzFWMEV3V1dJelpGSjFObk5WY1dZNFpFdExUVVkwVlZBNVlUQnVSVk5uUm01cWFtSm1lWEF4VmpkTWFXUkdXR2wwT0hkTlpVeFdkMVJCYkdOSVkwMURRMUpwVW05bU5tUndOMjVyUldnMWNtdENWWGR5Tms1SlVVMXpWWE4xYTAxMlpFVktWVU51TkVKcExVaGtNR2hGUjJkRVp6UnlkamxIWldWNFowMTBhbFJaT0dvelVGTlpRV3hUVFVsVFdteERXVWg0WDBrMWVuRlpPWEV4ZW10aWRtOHpVM0pJY1dWeGRXNXNha3BwUkRCVVdEbGxhVmxyUTJzeldWOXhTbVJOVDBkM1NHVm1OMmx3YlhjMVdsbG5OeTB4WWxVeWFUTXpVMkp1UWtJdFpGQjBValYwYTFJeVEyVlJWVEZTTW1aVVkxQk1lbUZqWWtkcWRrUjJUMmx2ZVhCbmRqVm9abGd4Y1RWelFqTjBWVE5tYnpaMVV6bERlV3BVYVdSd1owTk1NVXBwUkU1T1FraFhRVU54WkVvM09GaG9VM0ZyVDBWRGJFbEtNRlI1V2xock5uVTBSREJ4YzFGVmEzbFFkMHQwWlU5aGRGbGhMVkpITVRKZlIwMUNNSEZIYWtWSGRIbDZaVEpIYzNSd2RsOTZUMlZOYTJSMFEzbEhWMmQ0ZG1GZlJWTlBNVkpJWkVWR1IwWTNhVGt0YmtVemQwSlJYMjE1ZVhaeU1IVlNWVlJUVFZKeE1YY3paRGxoU1V0eldYTnhaRWR1ZWxGMWNYUktWVkJhVGkxRVRFTnhRME53UWtSclpuRkJWbDh3UVhWUVZreGhOa1pWYW1KYVFUTnJURGsyVFZOdkxWaHlVMXAwTVRaNU5GZDNNMlp0YmkxMFVsOVdRUT09IiwiZW1haWwiOiJ0cnVzdC5naXQuYm90QGdtYWlsLmNvbSJ9LCJyZWdpc3RyeS5yZWRoYXQuaW8iOnsiYXV0aCI6ImZIVm9ZeTF3YjI5c0xUUmpPR001TkRFeUxUSXhZbUV0TkRFMVppMDVOVEJsTFRJNU16VmpPR0V4T0RJNU5qcGxlVXBvWWtkamFVOXBTbE5WZWxWNFRXbEtPUzVsZVVwNlpGZEphVTlwU214T2FsRjZXbFJWTVUxSFJUSk9WMFV3VFRKSk5VOVVhR3BaYlZac1drUm9iRTFIUm14TmFtaHNXa05LT1M1blVUVldORGRzVGpaNVNEQjRRVkp5UkZCT01YSmxVMDR4U25SWmNWcHVjamhyWmpWR2JISXdUVmczVEUxblEzVklUamxDUXpsQ2VHOVBZM0JsYUZoMFkydFphRGRNUzAxSk5qbG9VMlZNY25kUExURk9jMFpXYW1sbVVFOUJabUZMVEhJd2VERnhTeTF2VWtKcFpUSkZNM0ZUYUROWFlVYzRhVTlqZFVkdVNIWk5RM1ptTUMxMWVGaDJkVkZsYjNKNlgxTTNXR1phWWxkSE1tMVhWRXhzYmtSalZVcG9abVI0U2tWd2FHWjJZbm8xVjBFd1dXSXpaRkoxTm5OVmNXWTRaRXRMVFVZMFZWQTVZVEJ1UlZOblJtNXFhbUptZVhBeFZqZE1hV1JHV0dsME9IZE5aVXhXZDFSQmJHTklZMDFEUTFKcFVtOW1ObVJ3TjI1clJXZzFjbXRDVlhkeU5rNUpVVTF6VlhOMWEwMTJaRVZLVlVOdU5FSnBMVWhrTUdoRlIyZEVaelJ5ZGpsSFpXVjRaMDEwYWxSWk9Hb3pVRk5aUVd4VFRVbFRXbXhEV1VoNFgwazFlbkZaT1hFeGVtdGlkbTh6VTNKSWNXVnhkVzVzYWtwcFJEQlVXRGxsYVZsclEyc3pXVjl4U21STlQwZDNTR1ZtTjJsd2JYYzFXbGxuTnkweFlsVXlhVE16VTJKdVFrSXRaRkIwVWpWMGExSXlRMlZSVlRGU01tWlVZMUJNZW1GallrZHFka1IyVDJsdmVYQm5kalZvWmxneGNUVnpRak4wVlRObWJ6WjFVemxEZVdwVWFXUndaME5NTVVwcFJFNU9Ra2hYUVVOeFpFbzNPRmhvVTNGclQwVkRiRWxLTUZSNVdsaHJOblUwUkRCeGMxRlZhM2xRZDB0MFpVOWhkRmxoTFZKSE1USmZSMDFDTUhGSGFrVkhkSGw2WlRKSGMzUndkbDk2VDJWTmEyUjBRM2xIVjJkNGRtRmZSVk5QTVZKSVpFVkdSMFkzYVRrdGJrVXpkMEpSWDIxNWVYWnlNSFZTVlZSVFRWSnhNWGN6WkRsaFNVdHpXWE54WkVkdWVsRjFjWFJLVlZCYVRpMUVURU54UTBOd1FrUnJabkZCVmw4d1FYVlFWa3hoTmtaVmFtSmFRVE5yVERrMlRWTnZMVmh5VTFwME1UWjVORmQzTTJadGJpMTBVbDlXUVE9PSIsImVtYWlsIjoidHJ1c3QuZ2l0LmJvdEBnbWFpbC5jb20ifX19 | base64 --decode > pull-secret.txt # notsecret
crc config set preset ${{ matrix.preset }}
crc config set pull-secret-file pull-secret.txt
crc config set network-mode user
crc config set consent-telemetry no
- name: Setup and Start the crc
run: |
sudo -su $USER crc setup
sudo -su $USER crc start --memory 11264
sleep 60
- name: Copy OpenShift client
run: sudo cp /home/$USER/.crc/bin/oc/oc /usr/bin/
- name: Copy the kubeconfig file to required location
run: |
mkdir -p /home/$USER/.kube
cp /home/$USER/.crc/machines/crc/kubeconfig /home/$USER/.kube/config
oc get pods -A
- name: Test
run: |
export HOST_KUBERNETES_CONFIG_FILE=/home/$USER/.kube/config
echo "Using ${HOST_KUBERNETES_CONFIG_FILE} as host k8s"
mvn verify -DexcludedGroups=heavy
build-operator-bundle:
runs-on: ubuntu-latest
env:
IMG: ttl.sh/trustify-operator-${{ github.sha }}:2h
BUNDLE_IMG: ttl.sh/trustify-operator-bundle-${{ github.sha }}:2h
steps:
- uses: actions/checkout@v4
- name: Create operator
# run: DOCKERFILE=Dockerfile.jvm make docker-build docker-push
run: make docker-build docker-push
- name: Create operator-bundle
run: make bundle-build bundle-push
run-ci:
needs: build-operator-bundle
uses: trustification/trustify-ci/.github/workflows/global-ci.yml@main
with:
operator_bundle: ttl.sh/trustify-operator-bundle-${{ github.sha }}:2h