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 минут.

Использованная литература:

Другие вопросы по тегам