Test installer #54
Workflow file for this run
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 install script checks ok | |
- name: Test install-magasin.sh -c (dependencies installed) | |
run: | | |
cd installer | |
./install-magasin.sh -c | |
cd .. | |
# 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 | |
# Run local Helm repo with the branch helm charts | |
- name: Run local repo | |
run: | | |
pwd | |
cd helm-scripts | |
./local-helm-repo.sh | |
sleep 10 | |
cd .. | |
# TODO remove | |
- name: TEST install only dagster | |
run: | | |
helm version | |
#cd helm-scripts | |
#./update-helm-charts.sh | |
# Run repo again | |
#./local-helm-repo.sh & | |
#cd .. | |
# is it in the package action? | |
helm install dagster ./helm/dagster --namespace dagter-file --create-namespace | |
# Test reindexing without existing index? | |
#helm repo index /home/runner/work/magasin/magasin/_helm-repo --url http://localhost:8000 | |
helm repo add mgs http://localhost:8000 | |
helm install dagster mgs/dagster -n dag --create-namespace | |
- 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 (check with dependencies missing) | |
run: | | |
cd installer | |
./install-magasin.sh -c | |
cd .. | |
# Tests if the script installs pedendencies ok | |
- name: Test install-magasin.sh -i (install with dependencies missing) | |
run: | | |
cd installer | |
./install-magasin.sh -i -y | |
# Double test dependencies were installed | |
helm version | |
kubectl | |
- 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 | |
- name: Install magasin from local repo | |
run: | | |
# 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 |