stages: - test - deploy before_script: # install git - apt-get -y update - apt-get -y install git # install prerequisites for docker - apt-get -y install ca-certificates curl gnupg lsb-release - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null # install docker - apt-get -y update - apt-get -y install docker-ce docker-ce-cli containerd.io - docker --version # install docker compose - DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker} - mkdir -p $DOCKER_CONFIG/cli-plugins - curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose - chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose - docker compose version # configure SSH keys - 'which ssh-agent || ( apt-get install -qq openssh-client )' - eval $(ssh-agent -s) - ssh-add <(echo "$SSH_PRIVATE_KEY") - mkdir -p ~/.ssh - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' docker-compose-test: image: debian:bullseye stage: test rules: - changes: - seedbox/config/ - server/config/ - jafner-tools/config/ script: - find ~+ -type f -name docker-compose.yml > composes.txt - find ~+/server/config/minecraft/ -type f -name *.yml >> composes.txt - for file in `cat composes.txt`; do docker compose -f $file config; done - rm composes.txt server-deploy: image: debian:bullseye stage: deploy rules: - changes: - server/ script: - ssh joey@joey-server "cd /home/joey/homelab && git pull" seedbox-deploy: image: debian:bullseye stage: deploy rules: - changes: - seedbox/ script: - ssh joey@joey-seedbox "cd /home/joey/homelab && git pull" jafner-tools-deploy: image: debian:bullseye stage: deploy rules: - changes: - jafner-tools/ script: - ssh root@jafner.tools "cd /root/homelab && git pull"