name: Check Deployed Version on: workflow_dispatch: inputs: environment: description: 'Target environment' type: environment required: true jobs: check: name: 'Check version (${{ inputs.environment }})' runs-on: ubuntu-latest environment: ${{ inputs.environment }} steps: - name: Check current deployed version id: current env: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} run: | SSH_HOST="${{ vars.SSH_HOST }}" SSH_USER="${{ vars.SSH_USER || 'root' }}" TENANT="${{ vars.TENANT_NAME }}" BASE_DIR="${{ vars.BASE_DIR || './sfp-server' }}" if [ -z "$SSH_HOST" ] || [ -z "$SSH_PRIVATE_KEY" ]; then echo "SSH not configured for environment '${{ inputs.environment }}'" echo "current_tag=unknown" >> $GITHUB_OUTPUT echo "current_fqdn=unknown" >> $GITHUB_OUTPUT exit 0 fi mkdir -p ~/.ssh echo "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -H "$SSH_HOST" >> ~/.ssh/known_hosts 2>/dev/null CURRENT_TAG=$(ssh -i ~/.ssh/deploy_key "$SSH_USER@$SSH_HOST" \ "grep '^IMAGE_TAG=' ${BASE_DIR}/tenants/${TENANT}/.env 2>/dev/null | cut -d= -f2" \ 2>/dev/null || echo "unknown") CURRENT_FQDN=$(ssh -i ~/.ssh/deploy_key "$SSH_USER@$SSH_HOST" \ "grep '^IMAGE_FQDN=' ${BASE_DIR}/tenants/${TENANT}/.env 2>/dev/null | cut -d= -f2" \ 2>/dev/null || echo "unknown") echo "current_tag=$CURRENT_TAG" >> $GITHUB_OUTPUT echo "current_fqdn=$CURRENT_FQDN" >> $GITHUB_OUTPUT echo "Currently deployed: $CURRENT_FQDN:$CURRENT_TAG" - name: Generate summary run: | CURRENT_TAG="${{ steps.current.outputs.current_tag }}" CURRENT_FQDN="${{ steps.current.outputs.current_fqdn }}" CONFIGURED_TAG="${{ vars.IMAGE_TAG || 'latest' }}" CONFIGURED_FQDN="${{ vars.IMAGE_FQDN }}" echo "## SFP Server Version Status (${{ inputs.environment }})" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| | Image | Tag |" >> $GITHUB_STEP_SUMMARY echo "|---|-------|-----|" >> $GITHUB_STEP_SUMMARY echo "| **Deployed** | \`$CURRENT_FQDN\` | \`$CURRENT_TAG\` |" >> $GITHUB_STEP_SUMMARY echo "| **Configured** | \`$CONFIGURED_FQDN\` | \`$CONFIGURED_TAG\` |" >> $GITHUB_STEP_SUMMARY if [ "$CURRENT_TAG" != "$CONFIGURED_TAG" ] && [ "$CURRENT_TAG" != "unknown" ]; then echo "" >> $GITHUB_STEP_SUMMARY echo "Deployed version differs from configured. Run **Update SFP Server** to update." >> $GITHUB_STEP_SUMMARY elif [ "$CURRENT_TAG" = "unknown" ]; then echo "" >> $GITHUB_STEP_SUMMARY echo "Could not determine currently deployed version." >> $GITHUB_STEP_SUMMARY else echo "" >> $GITHUB_STEP_SUMMARY echo "Server is running the configured version." >> $GITHUB_STEP_SUMMARY fi