diff --git a/.github/workflows/upgrade-tests.yaml b/.github/workflows/upgrade-tests.yaml new file mode 100644 index 0000000000..b6a85c96ce --- /dev/null +++ b/.github/workflows/upgrade-tests.yaml @@ -0,0 +1,89 @@ +name: Upgrade Tests +on: [push, pull_request, workflow_dispatch] + +jobs: + upgrade-tests: + runs-on: ubuntu-latest + timeout-minutes: 90 + concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + + env: + BRANCH_NAME: ${{ github.event.inputs.branch || 'master' }} + + steps: + - name: Checkout noobaa-core (master/input branch) + uses: actions/checkout@v4 + with: + repository: 'noobaa/noobaa-core' + path: 'noobaa-core' + ref: ${{ env.BRANCH_NAME }} + + - name: Deploy minikube + run: | + cd ./noobaa-core + sudo bash ./.travis/deploy_minikube.sh + + - name: Build noobaa + run: | + cd ./noobaa-core + make noobaa NOOBAA_TAG=noobaa-core:${{ env.BRANCH_NAME || 'master' }} + + - name: Checkout noobaa-core (latest) + uses: actions/checkout@v4 + with: + repository: 'noobaa/noobaa-core' + path: 'noobaa-core' + + - name: Build noobaa (latest) + run: | + cd ./noobaa-core + make noobaa NOOBAA_TAG=noobaa-core:upgrade-tests + + - name: Checkout noobaa-operator + uses: actions/checkout@v4 + with: + repository: 'noobaa/noobaa-operator' + path: 'noobaa-operator' + + - name: Change settings for k8s and minikube + run: | + sudo mv /root/.kube /root/.minikube $HOME + sudo chown -R $USER $HOME/.kube $HOME/.minikube + sed "s/root/home\/$USER/g" $HOME/.kube/config > tmp; mv tmp $HOME/.kube/config + + - name: Build operator + run: | + cd ./noobaa-operator + make all + + - name: Install noobaa system (from master) + run: | + cd ./noobaa-operator + ./build/_output/bin/noobaa-operator crd create + ./build/_output/bin/noobaa-operator operator install + ./build/_output/bin/noobaa-operator system create \ + --db-resources='{ "limits": {"cpu": "200m","memory": "2G"}, "requests": {"cpu": "200m","memory": "2G"}}' \ + --core-resources='{ "limits": {"cpu": "200m","memory": "1G"}, "requests": {"cpu": "200m","memory": "1G"}}' \ + --endpoint-resources='{ "limits": {"cpu": "200m","memory": "1G"}, "requests": {"cpu": "200m","memory": "1G"}}' \ + --noobaa-image='noobaa-core:${{ env.BRANCH_NAME || 'master' }}' + ./build/_output/bin/noobaa-operator status + + - name: Wait for phase Ready in the backingstore pod + run: | + cd ./noobaa-operator + ./.travis/number_of_pods_in_system.sh --pods 5 + kubectl wait --for=condition=available backingstore/noobaa-default-backing-store --timeout=5m + + - name: Upgrade noobaa to latest + run: | + cd ./noobaa-operator + OPERATOR_VERSION=$(go run cmd/version/main.go) + ./build/_output/bin/noobaa-operator upgrade --noobaa-image='noobaa-core:upgrade-tests' --operator-image='noobaa/noobaa-operator:$OPERATOR_VERSION' + + - name: Run Upgrade Tests + run: | + set -x + cd ./noobaa-core + make test-upgrade diff --git a/Makefile b/Makefile index 052761e394..5aff23cd62 100644 --- a/Makefile +++ b/Makefile @@ -335,6 +335,11 @@ test-external-pg-sanity: build-ssl-postgres @$(call remove_docker_network) .PHONY: test-external-pg-sanity +test-upgrade: tester + @echo "\033[1;34mRunning Upgrade Tests - after upgrading to latest\033[0m" + chmod +x ./src/test/system_tests/run_upgrade_tests.sh && ./src/test/system_tests/run_upgrade_tests.sh +.PHONY: test-upgrade + clean: @echo Stopping and Deleting containers @$(CONTAINER_ENGINE) ps -a | grep noobaa_ | awk '{print $1}' | xargs $(CONTAINER_ENGINE) stop &> /dev/null diff --git a/src/test/system_tests/run_upgrade_tests.sh b/src/test/system_tests/run_upgrade_tests.sh new file mode 100644 index 0000000000..c651422687 --- /dev/null +++ b/src/test/system_tests/run_upgrade_tests.sh @@ -0,0 +1,2 @@ +echo "Executing upgrade tests..." +# TODO \ No newline at end of file