From 80c07bf9faf2ec1fa3de18395784d6fba1a55465 Mon Sep 17 00:00:00 2001 From: Yoshihiro Imai Date: Thu, 31 Oct 2024 23:19:26 +0900 Subject: [PATCH] CI: :construction_worker: :rocket: automatic deploying --- .github/workflows/build.yml | 46 ++++++++++++++++++++++++++++++++++++ .github/workflows/deploy.yml | 40 +++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..fd81557 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,46 @@ +name: Builds, tests & co + + +on: + - pull_request + - push + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - macos-latest + - ubuntu-latest + - windows-latest + ocaml-compiler: + - "5.0" + - "4.14" + exclude: + # No OCaml base compiler packages matched the version 5.0 in the opam-repository yet (2024.07). + - os: windows-latest + ocaml-compiler: "5.0" + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout tree + uses: actions/checkout@v4 + + - name: Set-up OCaml + uses: ocaml/setup-ocaml@v2 + with: + ocaml-compiler: ${{ matrix.ocaml-compiler }} + + - run: opam install . --deps-only --with-test + + - run: opam exec -- dune build bin/main.bc.js + + - run: opam exec -- dune runtest + + - name: Upload the build artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.os }}-${{ matrix.ocaml-compiler }}-main.bc.js + path: _build/default/bin/main.bc.js diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..63ef9e3 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,40 @@ +name: Build and Deploy + +on: + push: + branches: ["main"] + +permissions: + contents: read + pages: write + id-token: write + +jobs: + build: + + runs-on: ubuntu-latest + + defaults: + run: + working-directory: ./hello + + steps: + - name: Checkout tree + uses: actions/checkout@v4 + + - name: Set-up OCaml + uses: ocaml/setup-ocaml@v2 + with: + ocaml-compiler: "5.0" + + - run: opam install . --deps-only --with-test + + - run: opam exec -- dune build @default + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: '_build/default/' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4