ci: деплой только в нашу сеть solana-net (192.168.76.181:8899), без devnet и временного валидатора
This commit is contained in:
@@ -4,15 +4,6 @@ on:
|
|||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
target:
|
|
||||||
description: "Куда деплоить: 'devnet' или 'our' (наш test-validator)"
|
|
||||||
required: true
|
|
||||||
default: our
|
|
||||||
type: choice
|
|
||||||
options:
|
|
||||||
- devnet
|
|
||||||
- our
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy-contract:
|
deploy-contract:
|
||||||
@@ -107,17 +98,6 @@ jobs:
|
|||||||
export PATH="$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/.cargo/bin:$PATH"
|
||||||
anchor --version
|
anchor --version
|
||||||
|
|
||||||
# ------ devnet: отдельно аирдроп ------
|
|
||||||
- name: Airdrop devnet SOL (target=devnet)
|
|
||||||
if: github.event.inputs.target == 'devnet'
|
|
||||||
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
|
|
||||||
|
|
||||||
# ------ общие: build + test ------
|
# ------ общие: build + test ------
|
||||||
- name: Build program
|
- name: Build program
|
||||||
working-directory: program
|
working-directory: program
|
||||||
@@ -141,28 +121,28 @@ jobs:
|
|||||||
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
||||||
anchor test
|
anchor test
|
||||||
|
|
||||||
# ------ deploy: единый шаг, цель выбирается по input (Gitea: default=our) ------
|
# ------ deploy: ТОЛЬКО в нашу сеть (постоянный Solana-валидатор solana-net) ------
|
||||||
- name: Deploy contract (только наш test-validator)
|
- name: Deploy contract (только наша сеть solana-net)
|
||||||
working-directory: program
|
working-directory: program
|
||||||
run: |
|
run: |
|
||||||
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
|
||||||
echo ">>> Деплой в НАШ local test-validator (127.0.0.1:8899)"
|
RPC=http://192.168.76.181:8899
|
||||||
mkdir -p /tmp/solana-ledger
|
echo ">>> Деплой в НАШУ сеть solana-net (RPC $RPC)"
|
||||||
solana-test-validator --ledger /tmp/solana-ledger \
|
# проверка, что наша сеть жива
|
||||||
--rpc-port 8899 --quiet > /tmp/validator.log 2>&1 &
|
for i in $(seq 1 20); do
|
||||||
VPD=$!
|
curl -s $RPC -H 'Content-Type: application/json' \
|
||||||
for i in $(seq 1 40); do
|
|
||||||
curl -s http://127.0.0.1:8899 -H 'Content-Type: application/json' \
|
|
||||||
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' 2>/dev/null | grep -q '"ok"' && break
|
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' 2>/dev/null | grep -q '"ok"' && break
|
||||||
sleep 1
|
echo "ждём сеть ($i)"; sleep 3
|
||||||
done
|
done
|
||||||
solana airdrop 100 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \
|
# add SOL нашему ключу через свой faucet (9900) — в нашей сети банкир = дефолт
|
||||||
--url http://127.0.0.1:8899 || true
|
|
||||||
solana config set --url http://127.0.0.1:8899
|
|
||||||
# Anchor НЕ принимает URL в --provider.cluster; таблица localnet => localhost:8899
|
|
||||||
sed -i 's/cluster = "devnet"/cluster = "localnet"/' Anchor.toml
|
|
||||||
mkdir -p "$HOME/.config/solana"
|
mkdir -p "$HOME/.config/solana"
|
||||||
cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json"
|
cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json"
|
||||||
anchor deploy --provider.cluster localnet \
|
solana airdrop 100 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \
|
||||||
|
--url $RPC || true
|
||||||
|
solana balance 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf --url $RPC
|
||||||
|
solana config set --url $RPC
|
||||||
|
# Anchor НЕ принимает URL в --provider.cluster; указываем сеть через [provider] в Anchor.toml
|
||||||
|
sed -i "s#cluster = \".*\"#cluster = \"$RPC\"#" Anchor.toml
|
||||||
|
anchor deploy --provider.cluster "$RPC" \
|
||||||
--provider.wallet "$HOME/.config/solana/id.json"
|
--provider.wallet "$HOME/.config/solana/id.json"
|
||||||
kill $VPD 2>/dev/null || true
|
echo ">>> ГОТОВО: контракт задеплоен в нашу сеть $RPC"
|
||||||
Reference in New Issue
Block a user