name: Deploy Docker Compose on: workflow_call: inputs: vm_ip: description: VM IP address required: true type: string jump_host: type: string default: 212.3.125.242 jump_port: type: string default: "2222" jump_user: type: string default: jump vm_port: type: string default: "22" vm_user: type: string default: debian compose_path: type: string default: "~/docker-compose.yml" working_directory: type: string default: "~" infisical_env: description: "Infisical Environment" type: string required: true infisical_path: description: "Infisical secret path" type: string required: false default: "/" infisical_api_url: description: "Infisical API URL (for self-hosted instances)" type: string required: false default: "https://secrets.itlab-ffeks.dnu.edu.ua" secrets: infisical_project_token: description: "Infisical Service Token for project secrets" required: true infisical_cicd_token: description: "Infisical Service Token for CI/CD secrets" required: true jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Configure SSH run: | mkdir -p ~/.ssh chmod 700 ~/.ssh export INFISICAL_TOKEN="${{ secrets.infisical_cicd_token }}" export INFISICAL_API_URL="${{ inputs.infisical_api_url }}" export INFISICAL_DOMAIN="$INFISICAL_API_URL" export INFISICAL_DISABLE_UPDATE_CHECK=true echo "Fetching SSH keys from Infisical..." JUMP_KEY=$(infisical secrets get JUMP_SSH_KEY --plain) VM_KEY=$(infisical secrets get VM_SSH_KEY --plain) if [ -z "$JUMP_KEY" ] || [ -z "$VM_KEY" ]; then echo "Error: SSH keys retrieved from Infisical are empty!" >&2 exit 1 fi echo "$JUMP_KEY" > ~/.ssh/jump_key chmod 600 ~/.ssh/jump_key echo "$VM_KEY" > ~/.ssh/vm_key chmod 600 ~/.ssh/vm_key cat > ~/.ssh/config <