root app (#19) #86
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "[test helmfiles releases]" | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref_name }}-test-workloads" | |
cancel-in-progress: true | |
jobs: | |
ci-test-helmfiles: | |
strategy: | |
fail-fast: false | |
matrix: | |
# kubernetes releases | |
k8s: [v1.27.13, v1.28.9, v1.29.4] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Prerequisite installations" | |
run: | | |
echo "install tooling" | |
( curl -Ls https://raw.githubusercontent.com/numerique-gouv/dk8s/main/scripts/install-prereq.sh | bash ) || exit $? | |
- name: lint | |
run: | | |
echo "Install local root CA" | |
time make local-root-ca | |
echo "Lint files" | |
time make lint HELMFILE_FILE=helmfile.d/cluster-configure-core | |
time make lint HELMFILE_FILE=helmfile.d/cluster-workload | |
- name: "Create local kubernetes ${{ matrix.k8s }} cluster" | |
run: | | |
make ci-bootstrap-local-cluster K8S_VERSION=${{ matrix.k8s }} | |
kubectl get nodes -A | |
- name: Test on local environment | |
run: | | |
echo "Sync releases" | |
time make apply HELMFILE_FILE=helmfile.d/cluster-configure-core | |
echo "Wait releases" | |
timeout=5 | |
interval=1 | |
test_result=1 | |
set +e | |
until [ "$timeout" -le 0 -o "$test_result" -eq "0" ] ; do | |
time make apply HELMFILE_FILE=helmfile.d/cluster-workload | |
test_result=$? | |
if [ "$test_result" -gt 0 ] ;then | |
echo "workload is not accessible yet. Retrying in $interval/$timeout seconds: $test_result"; | |
(( timeout-- )) | |
sleep $interval | |
fi | |
done | |
set -e | |
if [ "$test_result" -gt 0 ] ;then | |
test_status=ERROR | |
echo "$test_status: Timeout reached. workload is not accessible. result: $test_result" | |
return $test_result | |
fi | |
helm list -A | |
kubectl get pod -A | |
echo "Test local url" | |
time make ci-local-tests | |
echo "Destroy resources" | |
time make destroy HELMFILE_FILE=helmfile.d/cluster-workload | |
time make destroy HELMFILE_FILE=helmfile.d/cluster-configure-core | |
- name: Teardown | |
if: always() | |
run: | | |
echo "Destroy cluster ${{ matrix.k8s }}" | |
make ci-delete-local-cluster K8S_VERSION=${{ matrix.k8s }} |