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: copilot-setup-steps: name: Setup Development Environment runs-on: vscode-large-runners steps: - name: Checkout repository uses: actions/checkout@v6 with: lfs: true - name: Setup Node.js uses: actions/setup-node@v6 with: node-version-file: .nvmrc - name: Setup Python uses: actions/setup-python@v6 with: python-version: '3.12' architecture: 'x64' - name: Setup .NET uses: actions/setup-dotnet@v5 with: dotnet-version: '10.0' - name: Install setuptools run: pip install setuptools - name: Restore build cache uses: actions/cache/restore@v4 id: build-cache with: key: build_cache-${{ hashFiles('build/.cachesalt', 'package-lock.json') }} path: .build/build_cache - name: Extract build cache if: steps.build-cache.outputs.cache-hit == 'true' run: tar -xzf .build/build_cache/cache.tgz - name: Install dependencies if: steps.build-cache.outputs.cache-hit != 'true' run: npm ci - name: Create build cache archive if: steps.build-cache.outputs.cache-hit != 'true' run: | set -e mkdir -p .build node build/listBuildCacheFiles.js .build/build_cache_list.txt mkdir -p .build/build_cache tar -czf .build/build_cache/cache.tgz --files-from .build/build_cache_list.txt - name: Verify installation run: | node --version npm --version python --version dotnet --version