Files
landing/.gitlab-ci.yml
Blake Ridgway 3d4e2d4b1a first commit
2026-07-03 21:16:24 -05:00

50 lines
1.2 KiB
YAML

stages:
- build
- deploy
variables:
IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest
build:
stage: build
image: docker:26
services:
- docker:26-dind
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker pull $IMAGE_LATEST || true
- docker build --pull --cache-from $IMAGE_LATEST --tag $IMAGE --tag $IMAGE_LATEST .
- docker push $IMAGE
- docker push $IMAGE_LATEST
only:
- main
deploy:
stage: deploy
image: alpine:3.21
before_script:
- apk add --no-cache openssh-client
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh && chmod 700 ~/.ssh
- echo "$SSH_HOST_KEY" >> ~/.ssh/known_hosts
script:
- |
ssh $SSH_USER@$SSH_HOST "
docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY &&
docker pull $IMAGE_LATEST &&
docker stop arcline-landing 2>/dev/null || true &&
docker rm arcline-landing 2>/dev/null || true &&
docker run -d \
--name arcline-landing \
--restart unless-stopped \
-p 8080:8080 \
$IMAGE_LATEST
"
only:
- main
needs:
- build