From dc27ffe8d830b4e88ea6b62207798ac0f34ef2f9 Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Wed, 26 Jun 2024 06:21:50 -0500 Subject: [PATCH] github: add buck2 ci build Signed-off-by: Austin Seipp --- .github/actions/install-dotslash/action.yml | 30 ++++++++++++++ .github/workflows/build-buck2.yml | 43 +++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 .github/actions/install-dotslash/action.yml create mode 100644 .github/workflows/build-buck2.yml diff --git a/.github/actions/install-dotslash/action.yml b/.github/actions/install-dotslash/action.yml new file mode 100644 index 0000000000..878195a88c --- /dev/null +++ b/.github/actions/install-dotslash/action.yml @@ -0,0 +1,30 @@ +name: Install DotSlash +description: Install DotSlash on the current system +inputs: + version: + description: "version of dotslash" + required: false + default: "0.4.1" +runs: + using: "composite" + steps: + - name: Install DotSlash + shell: bash + run: | + mkdir -p $RUNNER_TEMP/dotslash + echo "$RUNNER_TEMP/dotslash" >> $GITHUB_PATH + + if [[ "$RUNNER_OS" == "Windows" ]]; then + C:\\msys64\\usr\\bin\\wget.exe https://github.com/facebook/dotslash/releases/download/v0.4.1/dotslash-windows.v0.4.1.tar.gz + tar xf dotslash-windows.v0.4.1.tar.gz + mv dotslash.exe $RUNNER_TEMP/dotslash + else + if [[ "$RUNNER_OS" == "macOS" ]]; then + wget https://github.com/facebook/dotslash/releases/download/v0.4.1/dotslash-macos.v0.4.1.tar.gz + tar xf dotslash-macos.v0.4.1.tar.gz + elif [[ "$RUNNER_OS" == "Linux" ]]; then + wget https://github.com/facebook/dotslash/releases/download/v0.4.1/dotslash-ubuntu-22.04.x86_64.v0.4.1.tar.gz + tar xf dotslash-ubuntu-22.04.x86_64.v0.4.1.tar.gz + fi + mv dotslash $RUNNER_TEMP/dotslash + fi diff --git a/.github/workflows/build-buck2.yml b/.github/workflows/build-buck2.yml new file mode 100644 index 0000000000..7efcae0df7 --- /dev/null +++ b/.github/workflows/build-buck2.yml @@ -0,0 +1,43 @@ +name: buck2 + +on: + push: + branches: + - main + pull_request: + +permissions: read-all + +jobs: + nix: + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + - os: windows-latest + - os: macos-latest + runs-on: ${{ matrix.os }} + timeout-minutes: 15 # NOTE (aseipp): keep in-sync with the build.yml timeout limit + + name: build with buck2 + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 + - name: Install Rust + uses: dtolnay/rust-toolchain@1482605bfc5719782e1267fd0c0cc350fe7646b8 + with: + toolchain: 1.76 + - name: (Linux) Install Mold + if: runner.os == 'Linux' + run: | + sudo apt-get update && sudo apt-get install -y mold + - name: Install DotSlash + uses: ./.github/actions/install-dotslash + - name: Add build tools to $PATH + run: echo "$PWD/tools/bin" >> $GITHUB_PATH + # FIXME (aseipp): use 'buck2' out of `$PATH` after we have dotslash .exe + # shim files for windows. until then just invoke manually + - name: buck2 build //... + run: | + dotslash ./tools/bin/buck2 build //... @mode//debug + dotslash ./tools/bin/buck2 run cli @mode//debug -- version