diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2aba41c..9d0cd24 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,20 +50,29 @@ cargo-doc: paths: - target/doc -.argocd: - image: argoproj/argocd:v2.6.15 - before_script: - - argocd login ${ARGOCD_SERVER} --username ${ARGOCD_USERNAME} --password ${ARGOCD_PASSWORD} --grpc-web - # Start the review environment start-review: - extends: .argocd + extends: .docker rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: manual script: - - argocd app sync argocd/libretunes-review-${CI_COMMIT_SHORT_SHA} - - argocd app wait argocd/libretunes-review-${CI_COMMIT_SHORT_SHA} + - apk add curl openssl + - cd cicd + - echo "$CLOUDFLARE_TUNNEL_AUTH_JSON" > tunnel-auth.json + - ./add-dns.sh $CLOUDFLARE_ZONE_ID review-$CI_COMMIT_SHORT_SHA libretunes-auto-review $CLOUDFLARE_API_TOKEN $CLOUDFLARE_TUNNEL_ID + - ./create-tunnel-config.sh http://libretunes:3000 review-$CI_COMMIT_SHORT_SHA.libretunes.xyz $CLOUDFLARE_TUNNEL_ID + - COMPOSE_PROJECT_NAME=review-$CI_COMMIT_SHORT_SHA + - POSTGRES_PASSWORD=$(openssl rand -base64 32) + - LIBRETUNES_VERSION=$CI_COMMIT_SHORT_SHA + - docker compose --file docker-compose-cicd.yml pull + - docker compose --file docker-compose-cicd.yml create + - CONFIG_VOL_NAME=review-${CI_COMMIT_SHORT_SHA}_cloudflared-config + - TMP_CONTAINER_NAME=$(docker run --rm -d -v $CONFIG_VOL_NAME:/data busybox sh -c "sleep infinity") + - docker cp tunnel-auth.json $TMP_CONTAINER_NAME:/data/auth.json + - docker cp cloudflared-tunnel-config.yml $TMP_CONTAINER_NAME:/data/config.yml + - docker stop $TMP_CONTAINER_NAME + - docker compose --file docker-compose-cicd.yml up -d environment: name: review/$CI_COMMIT_SHORT_SHA url: https://review-$CI_COMMIT_SHORT_SHA.libretunes.mregirouard.com @@ -72,13 +81,18 @@ start-review: # Stop the review environment stop-review: needs: ["start-review"] - extends: .argocd + extends: .docker rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: manual allow_failure: true script: - - argocd app delete argocd/libretunes-review-${CI_COMMIT_SHORT_SHA} --cascade + - apk add jq curl + - ./cicd/remove-dns.sh $CLOUDFLARE_ZONE_ID review-$CI_COMMIT_SHORT_SHA.libretunes.xyz libretunes-auto-review $CLOUDFLARE_API_TOKEN + - COMPOSE_PROJECT_NAME=review-$CI_COMMIT_SHORT_SHA + - LIBRETUNES_VERSION=$CI_COMMIT_SHORT_SHA + - docker compose --file cicd/docker-compose-cicd.yml down + - docker compose --file cicd/docker-compose-cicd.yml rm -f -v environment: name: review/$CI_COMMIT_SHORT_SHA action: stop