Solana: Как настроить действие github (CI) для Anchor Project
У меня есть свой якорный проект, построенный с якорной структурой сыворотки.
Я хочу настроить действие 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
1 ответ
Первоначальный подход не был эффективным
минусом:
- нужно много ручных установок solana, nvm, node и yarn
- следовательно, слишком много времени для бега
- сложный
- заново изобретать колесо
Когда копнул глубоко узнал, что узнал, что
serum
выпускает образы докеров только для этой цели. Поэтому я изменил свой файл действий на
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 минут.
Использованная литература: