72 lines
2.6 KiB
YAML
72 lines
2.6 KiB
YAML
name: deploy-devnet
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
deploy-devnet:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Rust toolchain + C compiler
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends build-essential pkg-config libssl-dev clang
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
|
|
sh -s -- -y --profile minimal --default-toolchain 1.91.0
|
|
|
|
- name: Setup Solana CLI
|
|
run: |
|
|
set -e
|
|
SOL_VERSION=v1.18.26
|
|
cd /tmp
|
|
curl -sSfL \
|
|
"https://github.com/solana-labs/solana/releases/download/${SOL_VERSION}/solana-release-x86_64-unknown-linux-gnu.tar.bz2" \
|
|
-o solana-release.tar.bz2
|
|
tar xjf solana-release.tar.bz2
|
|
install -m 755 solana-release/bin/* "$HOME/.local/share/solana-installactive" 2>/dev/null || { mkdir -p "$HOME/solana-local"; cp solana-release/bin/* "$HOME/solana-local/"; }
|
|
SOLDIR="$HOME/solana-local"
|
|
echo "$SOLDIR" >> "$GITHUB_PATH"
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
solana --version
|
|
|
|
- name: Setup Anchor CLI (anchor-next)
|
|
run: |
|
|
. "$HOME/.cargo/env"
|
|
mkdir -p "$HOME/.cargo"
|
|
printf '[net]\ngit-fetch-with-cli = true\n' > "$HOME/.cargo/config.toml"
|
|
cargo install --force --git https://github.com/otter-sec/anchor.git \
|
|
--branch anchor-next anchor-cli --locked
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
|
|
- name: Airdrop devnet SOL (to keypair address)
|
|
run: |
|
|
export PATH="$HOME/solana-local:$PATH"
|
|
solana airdrop 2 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \
|
|
--url https://api.devnet.solana.com || \
|
|
solana airdrop 2 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \
|
|
--url https://api.devnet.solana.com
|
|
solana balance 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf --url https://api.devnet.solana.com
|
|
|
|
- name: Build program
|
|
working-directory: program
|
|
run: |
|
|
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
|
anchor build
|
|
|
|
- name: Test program
|
|
working-directory: program
|
|
run: |
|
|
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
|
anchor test
|
|
|
|
- name: Deploy to devnet
|
|
working-directory: program
|
|
run: |
|
|
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
|
anchor deploy --provider.cluster devnet \
|
|
--provider.wallet ../deploy/dev_smart_updown-keypair.json |