diff --git a/.circleci/config.yml b/.circleci/config.yml index 7d12e2912..c895b1d54 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -12,14 +12,14 @@ workflows: - test_server deploy-latest: jobs: - - docker_build_and_deploy: + - build: context: main-builds filters: branches: only: main deploy-prod: jobs: - - docker_build_and_deploy: + - build: context: main-builds filters: tags: @@ -28,11 +28,11 @@ workflows: ignore: /.*/ ci-test: jobs: - - docker_build_and_deploy: + - build: context: main-builds filters: branches: - only: gergo/helmChartTest + only: gergo/bogus jobs: test_server: @@ -72,18 +72,13 @@ jobs: - store_artifacts: path: packages/server/reports/test-results.xml - docker_build_and_deploy: + build: docker: - - image: circleci/python:3.6-buster + - image: circleci/python:3.7 steps: - checkout - setup_remote_docker: docker_layer_caching: true - - run: - name: Install kubectl - command: | - curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl - chmod u+x ./kubectl - run: name: Build Frontend command: env SPECKLE_SERVER_PACKAGE=frontend ./.circleci/build.sh @@ -109,29 +104,3 @@ jobs: - run: name: Publish Helm Chart command: ./.circleci/publish_helm_chart.sh - - - run: - name: Deploy - command: | - RELEASE_VERSION=$(./.circleci/get_version.sh) - if [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - ./.circleci/deploy.sh - env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_1_RELEASE} ./.circleci/deploy_in_new_setup.sh - env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_2_RELEASE} ./.circleci/deploy_in_new_setup.sh - else - env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_2_LATEST} ./.circleci/deploy_in_new_setup.sh - env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_3_LATEST} ./.circleci/deploy_in_new_setup.sh - env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_4_LATEST} ./.circleci/deploy_in_new_setup.sh - fi - - run: - name: Test deployment - command: | - ./utils/test-deployment/install_prerequisites.sh - RELEASE_VERSION=$(./.circleci/get_version.sh) - if [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - ./utils/test-deployment/run_tests.py https://speckle.xyz - ./utils/test-deployment/run_tests.py ${SPECKLE_URL_TOR1_1_RELEASE} - else - ./utils/test-deployment/run_tests.py https://latest.speckle.dev - ./utils/test-deployment/run_tests.py ${SPECKLE_URL_TOR1_1_LATEST} - fi diff --git a/.circleci/deploy.sh b/.circleci/deploy.sh deleted file mode 100755 index a974f3434..000000000 --- a/.circleci/deploy.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash - -set -e - - -TARGET_SPECKLE_DEPLOYMENT=$SPECKLE_K8S_DEPLOYMENT - -IMAGE_VERSION_TAG=$(./.circleci/get_version.sh) - -if [[ "$IMAGE_VERSION_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - TARGET_SPECKLE_DEPLOYMENT=$SPECKLE_K8S_DEPLOYMENT_PROD -fi - -echo "$K8S_CLUSTER_CERTIFICATE" | base64 --decode > k8s_cert.crt - -# Update deployments -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - set image deployment/$TARGET_SPECKLE_DEPLOYMENT-frontend main=$DOCKER_IMAGE_TAG-frontend:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - set image deployment/$TARGET_SPECKLE_DEPLOYMENT-server main=$DOCKER_IMAGE_TAG-server:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - set image deployment/$TARGET_SPECKLE_DEPLOYMENT-preview-service main=$DOCKER_IMAGE_TAG-preview-service:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - set image deployment/$TARGET_SPECKLE_DEPLOYMENT-webhook-service main=$DOCKER_IMAGE_TAG-webhook-service:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - set image deployment/$TARGET_SPECKLE_DEPLOYMENT-fileimport-service main=$DOCKER_IMAGE_TAG-fileimport-service:$IMAGE_VERSION_TAG - -# Wait for rollout to complete -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - rollout status -w deployment/$TARGET_SPECKLE_DEPLOYMENT-frontend --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - rollout status -w deployment/$TARGET_SPECKLE_DEPLOYMENT-server --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - rollout status -w deployment/$TARGET_SPECKLE_DEPLOYMENT-preview-service --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - rollout status -w deployment/$TARGET_SPECKLE_DEPLOYMENT-webhook-service --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - rollout status -w deployment/$TARGET_SPECKLE_DEPLOYMENT-fileimport-service --timeout=10m \ No newline at end of file diff --git a/.circleci/deploy_in_new_setup.sh b/.circleci/deploy_in_new_setup.sh deleted file mode 100755 index f7f1d5861..000000000 --- a/.circleci/deploy_in_new_setup.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash - -set -e - -K8S_CLUSTER_CERTIFICATE_VARIABLE=K8S_${K8S_CLUSTER}_CERTIFICATE -K8S_CLUSTER_CERTIFICATE=${!K8S_CLUSTER_CERTIFICATE_VARIABLE} - -K8S_TOKEN_VARIABLE=K8S_${K8S_CLUSTER}_TOKEN -K8S_TOKEN=${!K8S_TOKEN_VARIABLE} - -K8S_SERVER_VARIABLE=K8S_${K8S_CLUSTER}_SERVER -K8S_SERVER=${!K8S_SERVER_VARIABLE} - -# K8S_NAMESPACE - -IMAGE_VERSION_TAG=$(./.circleci/get_version.sh) - - -echo "$K8S_CLUSTER_CERTIFICATE" | base64 --decode > k8s_cert.crt - -# Update deployments -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - set image deployment/speckle-frontend main=$DOCKER_IMAGE_TAG-frontend:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - set image deployment/speckle-server main=$DOCKER_IMAGE_TAG-server:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - set image deployment/speckle-preview-service main=$DOCKER_IMAGE_TAG-preview-service:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - set image deployment/speckle-webhook-service main=$DOCKER_IMAGE_TAG-webhook-service:$IMAGE_VERSION_TAG - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - set image deployment/speckle-fileimport-service main=$DOCKER_IMAGE_TAG-fileimport-service:$IMAGE_VERSION_TAG - - -# Wait for rollout to complete -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - rollout status -w deployment/speckle-frontend --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - rollout status -w deployment/speckle-server --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - rollout status -w deployment/speckle-preview-service --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - rollout status -w deployment/speckle-webhook-service --timeout=10m - -./kubectl \ - --kubeconfig=/dev/null \ - --server=$K8S_SERVER \ - --certificate-authority=k8s_cert.crt \ - --token=$K8S_TOKEN \ - --namespace=$K8S_NAMESPACE \ - rollout status -w deployment/speckle-fileimport-service --timeout=10m \ No newline at end of file