Test installer #45
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
on: | |
workflow_dispatch: | |
name: Test installer | |
jobs: | |
# | |
# GNU/Linux | |
# | |
tests-on-gnu-linux: | |
runs-on: ubuntu-latest | |
strategy: | |
# Keep running even if one variation of the job fail | |
fail-fast: false | |
# | |
permissions: | |
contents: write | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
# Tests if the script checks ok | |
- name: Test install-magasin.sh -c (dependencies installed) | |
run: | | |
cd installer | |
./install-magasin.sh -c | |
- name: Remove kubectl and helm | |
run: | | |
whereis kubectl | |
whereis helm | |
dpkg -s kubectl | |
sudo apt-get remove -y kubectl | |
sudo rm /usr/local/bin/helm | |
# Tests if the script checks ok | |
- name: Test install-magasin.sh -c (dependencies missing) | |
run: | | |
cd installer | |
./install-magasin.sh -c | |
# Tests if the script installs pedendencies ok | |
- name: Test install-magasin.sh -i (dependencies missing) | |
run: | | |
cd installer | |
./install-magasin.sh -i -y | |
# Double test dependencies were installed | |
helm version | |
kubectl | |
# This action also installs helm | |
- name: Start a local k8s cluster | |
uses: jupyterhub/action-k3s-helm@v3 | |
with: | |
k3s-channel: latest | |
metrics-enabled: false | |
traefik-enabled: false | |
docker-enabled: false | |
#- name: Create k8s Kind Cluster | |
# uses: helm/[email protected] | |
- name: Verify function of k8s, kubectl, and helm | |
run: | | |
echo "kubeconfig: $KUBECONFIG" | |
kubectl version | |
kubectl get pods --all-namespaces | |
helm version | |
helm list | |
# Check new paths | |
whereis helm | |
whereis kubectl | |
# Tests if the script checks ok | |
- name: Test install-magasin.sh | |
run: | | |
# We run a local helm repo in background | |
pwd | |
cd helm-scripts | |
./local-helm-repo.sh & | |
sleep 15 | |
cd .. | |
# Now we install magasin | |
cd installer | |
# We will test that yaml files overwrite | |
echo "drill: " > drill.yaml | |
echo " count: 1" >> drill.yaml | |
# We use the local repo and we test that the prefix and postfix work | |
./install-magasin.sh -u http://localhost:8000 -r mgs-test | |
# For local inspection | |
kubectl get pods --all-namespaces | |
# Display if have been installed | |
helm list -n mgs-drill-test | |
helm list -n mgs-dagster-test | |
helm list -n mgs-daskhub-test | |
helm list -n mgs-operator-test | |
helm list -n mgs-tenant-test | |
helm list -n mgs-superset-test | |
# Execute the helm command and count the number of charts | |
# We have installed 6 charts + one header line == 7 lines | |
num_lines=$(helm list --all-namespaces | wc -l) | |
# Check if the number of lines is not equal to 7 | |
if [ "$num_lines" -ne 7 ]; then | |
echo "Error: The command 'helm list --all-namespaces' did not return 7 lines of output." | |
exit 1 | |
fi | |
# Check if any line contains 'failed' | |
if helm list --all-namespaces | grep -q "failed"; then | |
echo "Error: One or more components have failed status." | |
exit 1 | |
fi | |
# | |
# UNINSTALLER tests GNU/Linux | |
# | |
# Test if the script tests | |
- name: Test uninstall-magasin.sh -c | |
run: | | |
cd installer | |
./uninstall-magasin.sh -c | |
# Test if the script tests | |
- name: Test uninstall-magasin.sh -r mgs-test | |
run: | | |
cd installer | |
./uninstall-magasin.sh -r mgs-test | |
# namespaces should not exist anymore | |
kubectl get namespaces | |
# | |
# INSTALLER | MacOS | |
# | |
tests-on-macos: | |
runs-on: macos-latest # Specifies the macOS runner | |
strategy: | |
# Keep running even if one variation of the job fail | |
fail-fast: false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 # Action to checkout your repository's code | |
- name: Test install-magasin.sh -c (check dependencies) | |
run: | | |
cd installer | |
zsh ./install-magasin.sh -c | |
- name: Test install-magasin.sh -i (install dependencies) | |
run: | | |
cd installer | |
zsh ./install-magasin.sh -i -y | |
# Note that we're not testing the setup in a kubernetes cluster. | |
# Test uninstall | |
- name: Test uninstall-magasin.sh -c | |
run: | | |
cd installer | |
zsh ./install-magasin.sh -c | |
zsh ./uninstall-magasin.sh -c |