Deploy using Docker compose and Cloudflare for review environments
This commit is contained in:
parent
fd4d823cf5
commit
0ed4de8bfd
@ -50,20 +50,29 @@ cargo-doc:
|
|||||||
paths:
|
paths:
|
||||||
- target/doc
|
- 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 the review environment
|
||||||
start-review:
|
start-review:
|
||||||
extends: .argocd
|
extends: .docker
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: manual
|
when: manual
|
||||||
script:
|
script:
|
||||||
- argocd app sync argocd/libretunes-review-${CI_COMMIT_SHORT_SHA}
|
- apk add curl openssl
|
||||||
- argocd app wait argocd/libretunes-review-${CI_COMMIT_SHORT_SHA}
|
- 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:
|
environment:
|
||||||
name: review/$CI_COMMIT_SHORT_SHA
|
name: review/$CI_COMMIT_SHORT_SHA
|
||||||
url: https://review-$CI_COMMIT_SHORT_SHA.libretunes.mregirouard.com
|
url: https://review-$CI_COMMIT_SHORT_SHA.libretunes.mregirouard.com
|
||||||
@ -72,13 +81,18 @@ start-review:
|
|||||||
# Stop the review environment
|
# Stop the review environment
|
||||||
stop-review:
|
stop-review:
|
||||||
needs: ["start-review"]
|
needs: ["start-review"]
|
||||||
extends: .argocd
|
extends: .docker
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: manual
|
when: manual
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
script:
|
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:
|
environment:
|
||||||
name: review/$CI_COMMIT_SHORT_SHA
|
name: review/$CI_COMMIT_SHORT_SHA
|
||||||
action: stop
|
action: stop
|
||||||
|
Loading…
x
Reference in New Issue
Block a user