From ca555003f61c7b65d40a4ff94bd339fb3bebf394 Mon Sep 17 00:00:00 2001 From: Ruslan Sayfutdinov Date: Fri, 15 Nov 2024 09:31:55 -0800 Subject: [PATCH] buck2/github: simplify Windows and Mac setup Summary: Current setup steps are copied from CirleCI, Github allows to do this easier and faster. `setup_windows_env` **3m12s** -> **46s**: https://github.com/KapJI/buck2/actions/runs/11840491142/job/32994456976 * Use `dtolnay/rust-toolchain` on all platforms. It also configures Cargo a bit, e.g. enabled coloured output. * `rustup` is already installed on Windows runners: https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md#rust-tools * `actions/checkout` is performed on job level, these actions are duplicated. Differential Revision: D66010956 --- .github/actions/setup_linux_env/action.yml | 1 - .github/actions/setup_macos_env/action.yml | 13 +++++--- .github/actions/setup_windows_env/action.yml | 34 +++++++++----------- .github/workflows/build-and-test.yml | 6 ---- 4 files changed, 24 insertions(+), 30 deletions(-) diff --git a/.github/actions/setup_linux_env/action.yml b/.github/actions/setup_linux_env/action.yml index 08e9a0a8c3f7..43164131ada9 100644 --- a/.github/actions/setup_linux_env/action.yml +++ b/.github/actions/setup_linux_env/action.yml @@ -25,7 +25,6 @@ runs: - name: Install conan run: sudo pip3 install conan==1.* shell: bash - - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '~1.22.0' diff --git a/.github/actions/setup_macos_env/action.yml b/.github/actions/setup_macos_env/action.yml index 8bdc4d04a1aa..70343a567c9d 100644 --- a/.github/actions/setup_macos_env/action.yml +++ b/.github/actions/setup_macos_env/action.yml @@ -3,9 +3,15 @@ description: Setup macOS environment runs: using: composite steps: - - name: Install Rustup - run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain=none - shell: bash + - uses: SebRollen/toml-action@v1.2.0 + id: read_rust_toolchain + with: + file: rust-toolchain + field: toolchain.channel + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: ${{ steps.read_rust_toolchain.outputs.value }} + components: clippy - name: Brew install run: brew install cmake python3 coreutils opam llvm protobuf zstd shell: bash @@ -13,7 +19,6 @@ runs: run: sudo pip3 install --break-system-packages conan==1.* shell: bash - uses: "./.github/actions/print_versions" - - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: '~1.22.0' diff --git a/.github/actions/setup_windows_env/action.yml b/.github/actions/setup_windows_env/action.yml index 4264009fdcb3..45cd89de5c4b 100644 --- a/.github/actions/setup_windows_env/action.yml +++ b/.github/actions/setup_windows_env/action.yml @@ -3,29 +3,25 @@ description: Setup Windows environment for building and testing runs: using: composite steps: - - name: Install Rustup - run: |- - choco install -y rustup.install - write-output "[net]`ngit-fetch-with-cli = true" | out-file -append -encoding utf8 $Env:USERPROFILE/.cargo/config.toml - type $Env:USERPROFILE/.cargo/config.toml - shell: pwsh - - name: Create python3 symlink - run: New-Item -ItemType SymbolicLink -Path C:\ProgramData\chocolatey\bin\python3.exe -Target $(Get-Command python).Source shell: pwsh - - name: Write Powershell profile + - name: Write Visual Studio path run: |- - $psProfileContent = @' $vsPath = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -requires Microsoft.VisualStudio.Component.VC.Llvm.Clang -property installationPath - $llvmPath = Join-Path $vsPath "VC\Tools\Llvm\x64\bin" - $env:PATH = "$env:USERPROFILE\.cargo\bin;$llvmPath;" + $env:PATH - $env:TEMP = "$env:USERPROFILE\temp" - $env:TMP = $env:TEMP - '@ - Add-Content "$PsHome\profile.ps1" $psProfileContent - New-Item -ItemType Directory -Path "$env:USERPROFILE\temp" + Join-Path $vsPath "VC\Tools\Llvm\x64\bin" | Out-File -FilePath $env:GITHUB_PATH -Append shell: pwsh - - uses: "./.github/actions/print_versions" - - uses: actions/checkout@v4 + - name: Create python3 symlink + run: | + New-Item -ItemType SymbolicLink -Path C:\ProgramData\chocolatey\bin\python3.exe -Target $(Get-Command python).Source + shell: pwsh + - uses: SebRollen/toml-action@v1.2.0 + id: read_rust_toolchain + with: + file: rust-toolchain + field: toolchain.channel + - uses: dtolnay/rust-toolchain@v1 + with: + toolchain: ${{ steps.read_rust_toolchain.outputs.value }} + components: clippy - uses: actions/setup-go@v5 with: go-version: '~1.22.0' diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 568e8535542a..ebd726579f4f 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -83,11 +83,5 @@ jobs: & $Env:RUNNER_TEMP/artifacts/buck2 build //... -v 2 & $Env:RUNNER_TEMP/artifacts/buck2 test //... -v 2 - uses: ./.github/actions/build_example_no_prelude - - name: Configure CARGO_HOME - run: |- - echo CARGO_HOME=$GITHUB_WORKSPACE/.cargo >> $GITHUB_ENV - echo $GITHUB_WORKSPACE/.cargo/bin >> $GITHUB_PATH - shell: - bash - uses: ./.github/actions/setup_reindeer - uses: ./.github/actions/build_bootstrap