Solana:如何为锚定项目设置 github 操作 (CI)
Solana: How to setup github action (CI) for an Anchor Project
我的锚项目是用 serum 的锚框架构建的。
我想设置 github 操作,以便每当提出新的拉取请求或在主分支上进行任何提交时,我可以确定没有代码被破坏并标记任何此类拉取请求。
这是我试过的方法。但是 运行 需要大约 18 到 20 分钟,但仍然没有成功。
name: Rust
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install AVM
run: cargo install --git https://github.com/project-serum/anchor avm --force
- name: Install Anchor
run: avm install 0.24.2 && avm use 0.24.2
- name: Build
run: anchor build
- name: Run tests
run: anchor test
最初的方法效率不高
缺点:
- 需要手动安装 solana、nvm、node 和 yarn
- 因此 运行
的时间太多了
- 复杂
- 重新发明轮子
深入挖掘后发现 serum
仅出于此目的发布 docker 图片。所以我将我的动作文件修改为
name: Rust
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
container: projectserum/build:v0.24.2
steps:
- uses: actions/checkout@v3
- name: List rustup toolchains
run: rustup toolchain list
- name: Set default toolchain
run: rustup default stable
- name: List rustup toolchains
run: rustup toolchain list
- name: Generate new keygen
run: solana-keygen new
- name: Set solana target cluster to local
run: solana config set --url http:localhost:8899
- name: Check solana config
run: solana config get
- name: Install yarn dependencies
run: yarn install
- name: Build
run: anchor build
- name: Run tests
run: anchor test
它使 运行 时间从 18 分钟减少到大约 3 分钟。
参考文献:
我的锚项目是用 serum 的锚框架构建的。
我想设置 github 操作,以便每当提出新的拉取请求或在主分支上进行任何提交时,我可以确定没有代码被破坏并标记任何此类拉取请求。
这是我试过的方法。但是 运行 需要大约 18 到 20 分钟,但仍然没有成功。
name: Rust
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install AVM
run: cargo install --git https://github.com/project-serum/anchor avm --force
- name: Install Anchor
run: avm install 0.24.2 && avm use 0.24.2
- name: Build
run: anchor build
- name: Run tests
run: anchor test
最初的方法效率不高
缺点:
- 需要手动安装 solana、nvm、node 和 yarn
- 因此 运行 的时间太多了
- 复杂
- 重新发明轮子
深入挖掘后发现 serum
仅出于此目的发布 docker 图片。所以我将我的动作文件修改为
name: Rust
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
container: projectserum/build:v0.24.2
steps:
- uses: actions/checkout@v3
- name: List rustup toolchains
run: rustup toolchain list
- name: Set default toolchain
run: rustup default stable
- name: List rustup toolchains
run: rustup toolchain list
- name: Generate new keygen
run: solana-keygen new
- name: Set solana target cluster to local
run: solana config set --url http:localhost:8899
- name: Check solana config
run: solana config get
- name: Install yarn dependencies
run: yarn install
- name: Build
run: anchor build
- name: Run tests
run: anchor test
它使 运行 时间从 18 分钟减少到大约 3 分钟。
参考文献: