writeonce/reference/writeonce-app/.gitlab-ci.yml
2026-04-05 00:45:02 +02:00

47 lines
No EOL
1.2 KiB
YAML

stages:
- build
- push
- deploy
variables:
IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
build:
stage: build
image: docker:20.10.7
services:
- docker:20.10.7-dind
before_script:
- echo "Setting up Docker environment"
script:
- docker info # Verify Docker is running
- docker build -t ${IMAGE_NAME} .
push:
stage: push
image: docker:20.10.7
services:
- docker:20.10.7-dind
before_script:
- echo "Logging into Docker registry"
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker push ${IMAGE_NAME}
only:
- main
deploy:
stage: deploy
image: docker:20.10.7
services:
- docker:20.10.7-dind
before_script:
- echo "Deploy artifacts on web server"
script:
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull ${IMAGE_NAME}
- docker run --rm ${IMAGE_NAME} sh -c "tar -czf - -C browser . " | ssh -o StrictHostKeyChecking=no deployer@writeonce.de 'docker exec -i writeonce-webserver tar -xzf - -C /usr/share/nginx/html/'
- ssh-agent -k
only:
- main