deploy: единый шаг, наш test-validator по умолчанию (devnet только при явном target=devnet)

This commit is contained in:
2026-09-02 19:36:52 +03:00
parent 026216a73c
commit bd5ace0b76
+29 -33
View File
@@ -141,39 +141,35 @@ jobs:
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH" export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH"
anchor test anchor test
# ------ deploy: devnet ------ # ------ deploy: единый шаг, цель выбирается по input (Gitea: default=our) ------
- name: Deploy to devnet - name: Deploy contract (our test-validator по умолчанию)
if: github.event.inputs.target == 'devnet'
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"
mkdir -p "$HOME/.config/solana" TARGET="${{ github.event.inputs.target }}"
cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json" if [ "$TARGET" = "devnet" ]; then
anchor deploy --provider.cluster devnet \ echo ">>> Деплой в devnet"
--provider.wallet "$HOME/.config/solana/id.json" mkdir -p "$HOME/.config/solana"
cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json"
# ------ deploy: наш тест-валидатор (всё в одном шаге, чтобы выжил) ------ anchor deploy --provider.cluster devnet \
- name: Deploy to our test-validator --provider.wallet "$HOME/.config/solana/id.json"
# деплой по умолчанию: наш локальный test-validator (без внешних faucet-лимитов) else
if: github.event.inputs.target != 'devnet' echo ">>> Деплой в НАШ local test-validator (127.0.0.1:8899)"
working-directory: program mkdir -p /tmp/solana-ledger
run: | solana-test-validator --ledger /tmp/solana-ledger \
export PATH="$HOME/solana-local:$HOME/.cargo/bin:$PATH" --rpc-port 8899 --quiet > /tmp/validator.log 2>&1 &
mkdir -p /tmp/solana-ledger VPD=$!
solana-test-validator --ledger /tmp/solana-ledger \ for i in $(seq 1 40); do
--rpc-port 8899 --quiet > /tmp/validator.log 2>&1 & curl -s http://127.0.0.1:8899 -H 'Content-Type: application/json' \
VPD=$! -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' 2>/dev/null | grep -q '"ok"' && break
for i in $(seq 1 40); do sleep 1
curl -s http://127.0.0.1:8899 -H 'Content-Type: application/json' \ done
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' 2>/dev/null | grep -q '"ok"' && break solana airdrop 100 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \
sleep 1 --url http://127.0.0.1:8899 || true
done solana config set --url http://127.0.0.1:8899
solana airdrop 100 9ALsnxXNzDBv3mokngCHbruRTWUZiWR7pf7vswS1fCpf \ mkdir -p "$HOME/.config/solana"
--url http://127.0.0.1:8899 || true cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json"
solana config set --url http://127.0.0.1:8899 anchor deploy --provider.cluster http://127.0.0.1:8899 \
mkdir -p "$HOME/.config/solana" --provider.wallet "$HOME/.config/solana/id.json"
cp ../deploy/dev_smart_updown-keypair.json "$HOME/.config/solana/id.json" kill $VPD 2>/dev/null || true
echo ">>> Деплой в НАШ local test-validator (127.0.0.1:8899)" fi
anchor deploy --provider.cluster http://127.0.0.1:8899 \
--provider.wallet "$HOME/.config/solana/id.json"
kill $VPD 2>/dev/null || true