From e1d305f1a0ba2c11a08fd4c7aa24d00a2e68cac2 Mon Sep 17 00:00:00 2001 From: Boris Date: Fri, 6 Dec 2024 00:06:41 +0800 Subject: [PATCH] update ci --- .github/workflows/ci.yml | 42 +++++++++++++++++++-------------------- README.md | 8 +------- bun.lockb | Bin 0 -> 67644 bytes 3 files changed, 21 insertions(+), 29 deletions(-) create mode 100755 bun.lockb diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d6114b..7550749 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,29 +16,19 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Check out the repo" - uses: "actions/checkout@v3" - with: - submodules: "recursive" + uses: "actions/checkout@v4" - name: "Install Foundry" uses: "foundry-rs/foundry-toolchain@v1" - - name: "Install Pnpm" - uses: "pnpm/action-setup@v2" - with: - version: "8" - - - name: "Install Node.js" - uses: "actions/setup-node@v3" - with: - cache: "pnpm" - node-version: "lts/*" + - name: "Install Bun" + uses: "oven-sh/setup-bun@v1" - name: "Install the Node.js dependencies" - run: "pnpm install" + run: "bun install" - - name: "Lint the contracts" - run: "pnpm lint" + - name: "Lint the code" + run: "bun run lint" - name: "Add lint summary" run: | @@ -49,13 +39,17 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Check out the repo" - uses: "actions/checkout@v3" - with: - submodules: "recursive" + uses: "actions/checkout@v4" - name: "Install Foundry" uses: "foundry-rs/foundry-toolchain@v1" + - name: "Install Bun" + uses: "oven-sh/setup-bun@v1" + + - name: "Install the Node.js dependencies" + run: "bun install" + - name: "Build the contracts and print their size" run: "forge build --sizes" @@ -69,13 +63,17 @@ jobs: runs-on: "ubuntu-latest" steps: - name: "Check out the repo" - uses: "actions/checkout@v3" - with: - submodules: "recursive" + uses: "actions/checkout@v4" - name: "Install Foundry" uses: "foundry-rs/foundry-toolchain@v1" + - name: "Install Bun" + uses: "oven-sh/setup-bun@v1" + + - name: "Install the Node.js dependencies" + run: "bun install" + - name: "Show the Foundry config" run: "forge config" diff --git a/README.md b/README.md index f854f5b..260aeb7 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,7 @@ Holds the contracts that web3 developers use on a daily basis, including etherna ## Install Dependency ```yarn -yarn -``` - -Common install It might take a while. - -```bash -yarn +bun install ``` ```bash diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..f55551d1e1484615715f18815807ca2e91729d63 GIT binary patch literal 67644 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 VfxYgc-r&zMlX&