From 04187aedbc75bc59f49a9053ec24a5d7cd65ad51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20Mart=C3=ADnez?= Date: Fri, 3 Jan 2025 16:29:05 -0800 Subject: [PATCH] windows cloud build? --- .github/workflows/build-all.yml | 3 ++ .github/workflows/build-linux.yml | 2 +- .github/workflows/build-macos.yml | 2 +- .github/workflows/build-windows.yml | 60 +++++++++++++++++++++++++++++ .github/workflows/windows.yml | 28 -------------- 5 files changed, 65 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/build-windows.yml delete mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/build-all.yml b/.github/workflows/build-all.yml index 09d68a3c41f..24dc9f8f063 100644 --- a/.github/workflows/build-all.yml +++ b/.github/workflows/build-all.yml @@ -12,3 +12,6 @@ jobs: build-macos: uses: ./.github/workflows/build-macos.yml + + build-windows: + uses: ./.github/workflows/build-windows.yml diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 70d95fd6382..a151d77b739 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -12,7 +12,7 @@ defaults: shell: bash jobs: - build: + build-linux: runs-on: ubuntu-22.04 # We prefer slightly older Ubuntu so we get binaries that work on # all more recent versions. diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 47e259bfe47..27c20bae650 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -5,7 +5,7 @@ on: workflow_call: jobs: - build: + build-macos: runs-on: macos-latest steps: - uses: actions/checkout@master diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 00000000000..a2d64743735 --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,60 @@ +name: Build F* (Windows) + +# Build F* on Windows + +on: + workflow_call: + workflow_dispatch: + push: + +defaults: + run: + shell: + bash + # ^ avoid powershell! + +jobs: + build-windows: + # NOTE! Unlike our other builds, this requires a self-hosted + # runner (for now?) + runs-on: [self-hosted, Windows, X64, opam-2-3] + + steps: + - uses: actions/checkout@master + with: + path: FStar + + - uses: ocaml/setup-ocaml@v3 + with: + ocaml-compiler: 4.14.2 + + # Already present in runner. + # - name: Prepare + # shell: powershell # somehow in bash we fail to build ocamlfind? + # run: | + # ./FStar/.scripts/get_fstar_z3.sh $HOME/bin + # echo "PATH=$HOME/bin:$PATH" >> $GITHUB_ENV + # opam install --deps-only FStar\fstar.opam + + - name: Set version + run: | + # Setting FSTAR_VERSION for nightly and release builds. If unset, + # we use $(version.txt)~dev. Setting it avoids the ~dev. + if [[ "${{github.workflow_ref}}" =~ "nightly.yml" ]]; then + echo FSTAR_VERSION="nightly-$(date -I)" >> $GITHUB_ENV + elif [[ "${{github.workflow_ref}}" =~ "release.yml" ]]; then + echo FSTAR_VERSION="$(cat FStar/version.txt)" >> $GITHUB_ENV + fi + + - name: Build package + shell: C:\cygwin64\bin\bash.exe --login '{0}' + working-directory: FStar + run: | + eval $(opam env) + export CC=x86_64-w64-mingw32-gcc.exe + make -skj$(nproc) package FSTAR_TAG=-Windows_NT-x86_64 V=1 + + - uses: actions/upload-artifact@v4 + with: + path: FStar\fstar-Windows_NT-x86_64.tar.gz + name: fstar-Windows_NT-x86_64.tar.gz diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml deleted file mode 100644 index 959d1521602..00000000000 --- a/.github/workflows/windows.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: FStar Windows Package - -on: - workflow_dispatch: - -jobs: - - build-windows: - - runs-on: [self-hosted, Windows, X64, opam-2-3] - - steps: - - name: Check out repo - uses: actions/checkout@v4 - - - name: Build a package - shell: C:\cygwin64\bin\bash.exe --login '{0}' - run: | - eval $(opam env) && CC=x86_64-w64-mingw32-gcc.exe make -C $GITHUB_WORKSPACE -j package && echo "There is a CR at the end of this line" - - name: Test the package - shell: C:\cygwin64\bin\bash.exe --login '{0}' - run: | - eval $(opam env) && CC=x86_64-w64-mingw32-gcc.exe CI_THREADS=24 $GITHUB_WORKSPACE/.scripts/test_package.sh && echo "There is a CR at the end of this line" - - name: Upload artifact - uses: actions/upload-artifact@v4 - with: - name: fstar-Windows_x86_64.zip - path: src\ocaml-output\fstar.zip