Skip to content

Commit

Permalink
Add launch-script into CI #56 (#57)
Browse files Browse the repository at this point in the history
* Extract configuration into JSON-file #54

* Remove voters-dir from wallet #54

* Add url into config, add payer to argumenta, use default solana payer if missing in args and config #54

* Use RPC URL from solana cli config by default #54

* Add launch-script into CI #56

* Fixes #56

* Fix launch-script name #56

* Fixes #56

* Add launch-script test into CI

* Add comment about NEON realm address #56

* Update solana version #56

Co-authored-by: Semen Medvedev <sm@neonlabs.org>
  • Loading branch information
s-medvedev and Semen Medvedev authored Jul 4, 2022
1 parent 13cdf8e commit 1934ec8
Show file tree
Hide file tree
Showing 18 changed files with 45 additions and 15 deletions.
2 changes: 2 additions & 0 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ steps:
command:
- ".buildkite/steps/deploy-tests.sh"
timeout: 60
agents:
queue: "testing"

- wait

Expand Down
7 changes: 5 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ FROM builder AS governance-builder
COPY ./ /opt/neon-governance/

WORKDIR /opt/neon-governance
RUN cargo clippy && cargo test-bpf && cargo build-bpf
RUN cargo clippy && cargo test-bpf && cargo build-bpf && cargo build --release

WORKDIR /opt/neon-governance/solana-program-library/governance/program
RUN cargo build-bpf
Expand All @@ -35,10 +35,13 @@ COPY --from=solana /usr/bin/solana /usr/bin/solana-keygen /opt/solana/bin/
COPY --from=governance-builder /usr/local/cargo/bin/spl-token /opt/solana/bin/
COPY --from=governance-builder /opt/neon-governance/solana-program-library/target/deploy/*.so /opt/deploy/
COPY --from=governance-builder /opt/neon-governance/target/deploy/*.so /opt/deploy/
COPY artifacts/creator.keypair /root/.config/solana/id.json
COPY --from=governance-builder /opt/neon-governance/target/release/launch-script /opt/
COPY --from=governance-builder /opt/neon-governance/target/release/vesting-contract-cli /opt/
COPY artifacts/payer.keypair /root/.config/solana/id.json
COPY artifacts/*.keypair /opt/artifacts/
COPY artifacts/voters/*.keypair /opt/artifacts/voters/
COPY init-governance.sh /opt/
COPY run-tests.sh /opt/
COPY testing.cfg /opt/

ENV PATH=/opt/solana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt
2 changes: 1 addition & 1 deletion docker-compose-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version: "2.1"
services:
solana:
container_name: solana
image: solanalabs/solana:v1.9.12
image: solanalabs/solana:v1.10.29
environment:
- RUST_LOG=solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=debug,solana_bpf_loader=debug,solana_rbpf=debug
- SOLANA_URL=http://127.0.0.1:8899
Expand Down
14 changes: 5 additions & 9 deletions init-governance.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#!/bin/bash
set -euo pipefail

solana -v --keypair artifacts/creator.keypair airdrop 100
solana -v --keypair artifacts/payer.keypair airdrop 100

solana -v --keypair artifacts/voters/voter1.keypair airdrop 100
Expand All @@ -10,12 +9,9 @@ solana -v --keypair artifacts/voters/voter3.keypair airdrop 100
solana -v --keypair artifacts/voters/voter4.keypair airdrop 100
solana -v --keypair artifacts/voters/voter5.keypair airdrop 100

spl-token create-token --decimals 6 --fee-payer artifacts/payer.keypair artifacts/community-mint.keypair
spl-token create-token --decimals 9 --fee-payer artifacts/payer.keypair --mint-authority artifacts/creator.keypair -- artifacts/community-mint.keypair

solana program deploy --program-id artifacts/spl-governance.keypair --keypair artifacts/creator.keypair -v deploy/spl_governance.so

solana program deploy --program-id artifacts/addin-fixed-weights.keypair --keypair artifacts/creator.keypair -v deploy/spl_governance_addin_fixed_weights.so

solana program deploy --program-id artifacts/addin-vesting.keypair --keypair artifacts/creator.keypair -v deploy/spl_governance_addin_vesting.so

solana program deploy --program-id artifacts/maintenance.keypair --keypair artifacts/creator.keypair -v deploy/maintenance.so
solana program deploy -v --keypair artifacts/payer.keypair --upgrade-authority artifacts/creator.keypair --program-id artifacts/spl-governance.keypair deploy/spl_governance.so
solana program deploy -v --keypair artifacts/payer.keypair --upgrade-authority artifacts/creator.keypair --program-id artifacts/addin-fixed-weights.keypair deploy/spl_governance_addin_fixed_weights.so
solana program deploy -v --keypair artifacts/payer.keypair --upgrade-authority artifacts/creator.keypair --program-id artifacts/addin-vesting.keypair deploy/spl_governance_addin_vesting.so
solana program deploy -v --keypair artifacts/payer.keypair --upgrade-authority artifacts/creator.keypair --program-id artifacts/maintenance.keypair deploy/maintenance.so
32 changes: 31 additions & 1 deletion run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,34 @@ set -euo pipefail

solana config set --url ${SOLANA_URL:-http://localhost:8899}

./init-governance.sh
./init-governance.sh


# INTEGRATION TEST FOR GOVERNANCE OPERATION

# Balance delegated to the user to create proposals on behalf of vesting holders
DELEGATED_BALANCE=$(solana create-address-with-seed MSIG_5.1 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA --from artifacts/creator.keypair)

# Address for NEON realm (PDA for spl-governance with seeds:['governance',name='NEON'])
# Can be calculated like this:
# ```
# SPL_GOVERNANCE_ID=$(solana address -k artifacts/spl-governance.keypair)
# NEON_REALM=$(python3 -c "from solana.publickey import PublicKey; print(PublicKey.find_program_address([b'governance',b'NEON'], PublicKey('$SPL_GOVERNANCE_ID'))[0])")
# ```
NEON_REALM=HQ2gGKpAqFHoUWViJNHa8ARTiwBGisMDDrL2A8q4WiiC

# Stage 0: Preparing Governance subsystem (all contracts already loaded in ./init-governance.sh step)
launch-script --config testing.cfg --send-trx environment dao
launch-script --config testing.cfg --send-trx proposal --name 'Delegate vote to payer' --governance MSIG_5.$DELEGATED_BALANCE create-delegate-vote --delegate $(solana address) --realm $NEON_REALM
launch-script --config testing.cfg --send-trx proposal --governance MSIG_5.$DELEGATED_BALANCE --proposal LAST sign-off
launch-script --config testing.cfg --send-trx proposal --governance MSIG_5.$DELEGATED_BALANCE --proposal LAST approve --voters artifacts/voters/
launch-script --config testing.cfg --send-trx proposal --governance MSIG_5.$DELEGATED_BALANCE --proposal LAST execute

# Stage 1: Preparing Token Genesis Event and switch to vesting-addin
launch-script --config testing.cfg --send-trx proposal --name 'Token Genesis Event' create-tge
launch-script --config testing.cfg --send-trx proposal --proposal LAST sign-off
launch-script --config testing.cfg --send-trx proposal --proposal LAST approve --voters artifacts/voters/
sleep 180
launch-script --config testing.cfg --send-trx proposal --proposal LAST finalize-vote
sleep 60
launch-script --config testing.cfg --send-trx proposal --proposal LAST execute
3 changes: 1 addition & 2 deletions testing.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"url": "http://localhost:8899",
"creator": "5mAkTXJMyFxvEeUNpfiwAqUfD3qRSRmdh6j6YgXDwqrm",
"creator": "artifacts/creator.keypair",
"community-mint": "EjLGfD8mpxKLwGDi8AiTisAbGtWWM2L3htkJ6MpvS8Hk",
"governance-program": "82pQHEmBbW6CQS8GzLP3WE2pCgMUPSW2XzpuSih3aFDk",
"fixed-weight-addin": "56cFVhzLFKuvRXQW68ACLpcbJonZeUBNDdLdZoo5fGnB",
Expand Down

0 comments on commit 1934ec8

Please sign in to comment.