Skip to content

Add library names to CLI options #306

Add library names to CLI options

Add library names to CLI options #306

Workflow file for this run

name: Main
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
ANCHOR_VERSION: 0.30.0
SOLANA_VERSION: 1.18.18
TOOLCHAIN: 1.75.0
jobs:
lint:
name: Check styling
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Check linting
run: pnpm run lint
tests:
name: Test
runs-on: ubuntu-latest
strategy:
matrix:
project: ["counter-anchor", "counter-shank"]
solana: ["1.17.34", "1.18.18"]
include:
- anchor: "0.30.0"
project: "counter-anchor"
solana: "1.18.18"
- anchor: "0.29.0"
project: "counter-anchor"
solana: "1.17.34"
steps:
- name: Git checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Install Solana
uses: metaplex-foundation/actions/install-solana@v1
with:
version: ${{ matrix.solana }}
- name: Install Rustfmt
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
- name: Install Clippy
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.TOOLCHAIN }}
components: clippy
- name: Install Anchor
if: ${{ matrix.anchor }}
uses: metaplex-foundation/actions/install-anchor-cli@v1
with:
version: ${{ matrix.anchor }}
- name: Pre-scaffold projects for caching purposes
run: pnpm snapshot ${{ matrix.project }} --scaffold-only
- name: Cache cargo crates
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
./projects/**/.cargo/
./projects/**/target/
key: ${{ runner.os }}-crates-solana-v${{ matrix.solana }}-${{ hashFiles('projects/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-crates-solana-v${{ matrix.solana }}
- name: Build and run tests
run: pnpm snapshot ${{ matrix.project }} --test
release:
name: Release
runs-on: ubuntu-latest
if: github.event_name == 'push'
needs: [lint, tests]
outputs:
published: ${{ steps.changesets.outputs.published }}
steps:
- name: Git checkout
uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.PAT_GITHUB }}
- name: Setup pnpm
uses: pnpm/action-setup@v3
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: "pnpm"
- name: Install Dependencies
run: pnpm install --frozen-lockfile
- name: Install Solana
uses: metaplex-foundation/actions/install-solana@v1
with:
version: ${{ env.SOLANA_VERSION }}
- name: Install Anchor
uses: metaplex-foundation/actions/install-anchor-cli@v1
with:
version: ${{ env.ANCHOR_VERSION }}
- name: Pre-scaffold projects for caching purposes
run: pnpm snapshot --scaffold-only
- name: Cache cargo crates
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
./projects/**/.cargo/
./projects/**/target/
key: ${{ runner.os }}-crates-solana-v${{ env.SOLANA_VERSION }}-${{ hashFiles('projects/**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-crates-solana-v${{ env.SOLANA_VERSION }}
- name: Setup git user
run: |
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@v1
with:
commit: "Publish a new release"
title: "Publish a new release"
publish: ./node_modules/.bin/changeset publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}