47 lines
No EOL
1.2 KiB
YAML
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 |