torrust-tracker-deployer 0.1.0

Torrust Tracker Deployer - Deployment Infrastructure with Ansible and OpenTofu
Documentation
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