name: "Copilot Setup Steps" # Automatically run the setup steps when they are changed to allow for easy validation, # and allow manual testing through the repository's "Actions" tab on: workflow_dispatch: push: paths: - .github/workflows/copilot-setup-steps.yml pull_request: paths: - .github/workflows/copilot-setup-steps.yml jobs: # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. copilot-setup-steps: runs-on: ubuntu-latest timeout-minutes: 30 # Set the permissions to the lowest permissions possible needed for your steps. # Copilot will be given its own token for its operations. permissions: # We need to clone the repository to build and run the dependency-installer binary contents: read steps: - name: Checkout code uses: actions/checkout@v5 - name: Set up Rust toolchain uses: dtolnay/rust-toolchain@stable - name: Enable Rust cache uses: Swatinem/rust-cache@v2 - name: Build dependency-installer binary run: | cargo build --release -p torrust-tracker-deployer-dependency-installer --bin dependency-installer - name: Install all development dependencies run: | # Use the binary we just built to install all dependencies # Note: The binary handles sudo internally for dependencies that need it target/release/dependency-installer install env: # Ensure non-interactive installation DEBIAN_FRONTEND: noninteractive - name: Verify installations run: | # Verify all tools are installed correctly target/release/dependency-installer check - name: Install Git pre-commit hooks run: | ./scripts/install-git-hooks.sh