diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37e104a03..f78885161 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,50 +17,31 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: Swatinem/rust-cache@v2.7.1 - - 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/setup-alejandra@v1.0.0 - - - 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/rust-cache@v2.7.1 - - 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 @@ -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