Skip to content

Commit

Permalink
ci: use nix flake for environment
Browse files Browse the repository at this point in the history
  • Loading branch information
johnyob committed Aug 15, 2024
1 parent 57120bb commit 8fe18ef
Showing 1 changed file with 15 additions and 82 deletions.
97 changes: 15 additions & 82 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,50 +17,31 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: Swatinem/[email protected]
- name: Rust setup
# FIXME: Once rustup adds a command to install a toolchain from rust-toolchain.toml, we can remove this.
run: rustup toolchain add 1.73.0 --profile minimal

- uses: luisnquin/[email protected]

- name: Format (rustfmt)
run: make fmt-rust-check

- name: Format (prettier)
run: npx prettier --check .

- name: Format (Nix)
run: make fmt-nix-check
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: nix --version
- run: nix fmt -- --fail-on-change

# FIXME(https://linear.app/tezos/issue/JSTZ-49):
# Add build and tests for LIGO contracts

build-rust:
name: Build (Cargo)
build:
name: Build
runs-on: ubuntu-latest
needs: [commitlint, fmt]
steps:
- uses: actions/checkout@v4
- uses: Swatinem/[email protected]
- name: Rust setup
# FIXME: Once rustup adds a command to install a toolchain from rust-toolchain.toml, we can remove this.
run: rustup toolchain add 1.73.0 --profile minimal
- uses: taiki-e/install-action@nextest

- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- run: nix --version
- name: Lint
run: make lint

run: nix develop -j auto --command make lint
- name: Prevent blst
run: sh -c '[ -z "$(cargo tree | grep blst)" ]'

- name: Build all packages
# PROFILE=dev is used to build the dev profile, which is used for testing
# (to avoid building both a release and a debug profile in CI).
run: PROFILE=dev make build

- name: Run unit tests
run: make test-unit
run: nix develop -j auto --command sh -c '[ -z "$(cargo tree | grep blst)" ]'
- name: Build
run: nix --log-format raw -L build -j auto .#{all,js_jstz}
- name: Flake check
run: nix --log-format raw -L flake check -j auto

build-docs:
name: Build Documentation
Expand Down Expand Up @@ -89,51 +70,3 @@ jobs:

- name: Build with VitePress
run: npm run docs:build

build-sdk:
name: Build TypeScript SDK
runs-on: ubuntu-latest
needs: [commitlint, fmt]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: npm
- name: Get npm cache directory
id: npm-cache-dir
shell: bash
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Configure npm cache
uses: actions/cache@v4
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci

- name: Build
run: cd packages/jstz && npm run build

build-nix:
name: Build (Nix)
runs-on: ubuntu-latest
needs: [build-rust, build-sdk, build-docs]
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@V27
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v15
with:
name: trilitech-jstz
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"

- name: Build Shell
run: nix develop --command bash -c "echo 'Hello World'"

- name: Build
run: nix build -j auto

0 comments on commit 8fe18ef

Please sign in to comment.