diff --git a/.gitea/workflows/deploy-cd-server.yaml b/.gitea/workflows/deploy-cd-server.yaml index 5056c9c..a7b5e55 100644 --- a/.gitea/workflows/deploy-cd-server.yaml +++ b/.gitea/workflows/deploy-cd-server.yaml @@ -2,8 +2,8 @@ name: Deploy CD Server on: push: - # branches: - # - main + branches: ['**'] + # - main # paths: # - 'workspace/sprint_1_2/CODEBASE/deps/implementation/CD_server/**' @@ -16,6 +16,17 @@ jobs: with: fetch-depth: 1 + - name: Copy CD server code to VM + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ vars.LIGHTSAIL_DEPLOY_HOST }} + username: ${{ secrets.LIGHTSAIL_USERNAME }} + key: ${{ secrets.LIGHTSAIL_SSH_KEY }} + port: ${{ vars.LIGHTSAIL_PORT }} + source: "workspace/sprint_1_2/CODEBASE/deps/implementation/CD_server/" + target: "/opt/cd-server/" + strip_components: 0 + - name: Deploy to Lightsail VM uses: appleboy/ssh-action@v1.0.3 with: @@ -34,31 +45,20 @@ jobs: sudo useradd -m -s /bin/bash deploy fi - echo "[deploy] Adding deploy user to docker group" + echo "[deploy] Adding deploy user to docker group" sudo usermod -aG docker deploy || true - echo "[deploy] Creating $DEPLOY_DIR" - sudo mkdir -p "$DEPLOY_DIR" - sudo chown deploy:docker "$DEPLOY_DIR" - - echo "[deploy] Syncing code to $DEPLOY_DIR" - sudo rsync -avz --delete \ - --exclude='.git' \ - --exclude='__pycache__' \ - --exclude='*.pyc' \ - --exclude='.env' \ - ./workspace/sprint_1_2/CODEBASE/deps/implementation/CD_server/ "$DEPLOY_DIR/" - + echo "[deploy] Ensuring $DEPLOY_DIR ownership" sudo chown -R deploy:docker "$DEPLOY_DIR" - echo "[deploy] Building CD server Docker image" - sudo -u deploy docker compose -f "$DEPLOY_DIR/docker-compose.yml" build --no-cache - echo "[deploy] Creating .env file" sudo -u deploy bash -c "echo 'WEBHOOK_SECRET=${{ secrets.WEBHOOK_SECRET }}' >> $DEPLOY_DIR/.env" sudo -u deploy bash -c "echo 'AWS_ECR_REGION=${{ secrets.AWS_ECR_REGION }}' >> $DEPLOY_DIR/.env" sudo chmod 600 "$DEPLOY_DIR/.env" + echo "[deploy] Building CD server Docker image" + sudo -u deploy docker compose -f "$DEPLOY_DIR/docker-compose.yml" build --no-cache + echo "[deploy] Starting CD server container" sudo -u deploy docker compose -f "$DEPLOY_DIR/docker-compose.yml" up -d --force-recreate