name: Deploy on: push: branches: - main jobs: deploy: runs-on: docker env: PROJECT_NAME: mb-grid-solutions TARGET_HOST: alpha.mintel.me TARGET_USER: deploy TARGET_BASE: /home/deploy/sites steps: - name: Install tools run: | apt-get update apt-get install -y git docker.io openssh-client rsync - name: Checkout repository run: | git clone https://git.infra.mintel.me/mmintel/mb-grid-solutions.com.git . git checkout main - name: Login to registry env: REGISTRY_USER: ${{ secrets.REGISTRY_USER }} REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }} run: | echo "$REGISTRY_PASS" | docker login registry.infra.mintel.me \ -u "$REGISTRY_USER" --password-stdin - name: Build image run: | docker build -t registry.infra.mintel.me/mintel/mb-grid-solutions:latest . - name: Push image run: | docker push registry.infra.mintel.me/mintel/mb-grid-solutions:latest - name: Setup SSH env: ALPHA_SSH_KEY: ${{ secrets.ALPHA_SSH_KEY }} run: | mkdir -p ~/.ssh echo "$ALPHA_SSH_KEY" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts - name: Ensure target directory exists run: | ssh $TARGET_USER@$TARGET_HOST "mkdir -p $TARGET_BASE/$PROJECT_NAME" - name: Sync compose file run: | rsync -avz \ infra/docker-compose.yml \ $TARGET_USER@$TARGET_HOST:$TARGET_BASE/$PROJECT_NAME/docker-compose.yml - name: Deploy run: | ssh $TARGET_USER@$TARGET_HOST " cd $TARGET_BASE/$PROJECT_NAME && docker compose pull && docker compose up -d "