diff --git a/.github/workflows/main.yml b/.github/workflows/closure.yml similarity index 75% rename from .github/workflows/main.yml rename to .github/workflows/closure.yml index 06b01aa2807..e0e3fb8401e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/closure.yml @@ -1,4 +1,4 @@ -name: main +name: closure on: [push, pull_request] @@ -69,23 +69,3 @@ jobs: - name: Build, install and test Flambda backend (Closure mode) working-directory: flambda_backend run: make -j $J ci - - - name: Clean Flambda backend tree - working-directory: flambda_backend - run: git clean -dfx - - - name: Run autoconf for Flambda backend - working-directory: flambda_backend - run: autoconf - - - name: Configure Flambda backend (Flambda mode) - working-directory: flambda_backend - run: | - ./configure \ - --prefix=$GITHUB_WORKSPACE/_install \ - --enable-middle-end=flambda \ - --with-dune=$GITHUB_WORKSPACE/dune/dune.exe - - - name: Build, install and test Flambda backend (Flambda mode) - working-directory: flambda_backend - run: make -j $J ci diff --git a/.github/workflows/flambda1.yml b/.github/workflows/flambda1.yml new file mode 100644 index 00000000000..f6f16e63244 --- /dev/null +++ b/.github/workflows/flambda1.yml @@ -0,0 +1,71 @@ +name: flambda1 + +on: [push, pull_request] + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + + env: + J: "3" + + steps: + - name: Checkout the Flambda backend repo + uses: actions/checkout@master + with: + path: 'flambda_backend' + + - name: Cache dune build compiler install directory + uses: actions/cache@v1 + id: cache + with: + path: ${{ github.workspace }}/dune_build_compiler/_install + key: ${{ matrix.os }}-cache-dune-build-compiler + + - name: Checkout OCaml 4.12 (dune build compiler) + uses: actions/checkout@master + if: steps.cache.outputs.cache-hit != 'true' + with: + repository: 'ocaml/ocaml' + path: 'dune_build_compiler' + ref: '4.12' + + - name: Build and install dune build compiler + if: steps.cache.outputs.cache-hit != 'true' + working-directory: dune_build_compiler + run: | + ./configure --prefix=$GITHUB_WORKSPACE/dune_build_compiler/_install + make -j $J world.opt + make install + + - name: Checkout dune github repo + uses: actions/checkout@master + with: + repository: 'ocaml-flambda/dune' + ref: 'special_dune' + path: 'dune' + + - name: Build dune + working-directory: dune + run: | + PATH=$GITHUB_WORKSPACE/dune_build_compiler/_install/bin:$PATH make release + + - name: Run autoconf for Flambda backend + working-directory: flambda_backend + run: autoconf + + - name: Configure Flambda backend (Flambda 1 mode) + working-directory: flambda_backend + run: | + ./configure \ + --prefix=$GITHUB_WORKSPACE/_install \ + --enable-middle-end=flambda \ + --with-dune=$GITHUB_WORKSPACE/dune/dune.exe + + - name: Build, install and test Flambda backend (Flambda 1 mode) + working-directory: flambda_backend + run: make -j $J ci