Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
b86cbef
working unit tests
krystofoliva Nov 10, 2025
21a8450
added integration tests and buy/burn whitepaper logic tests
krystofoliva Nov 12, 2025
4111854
clippy warnings fix
krystofoliva Nov 12, 2025
e640369
anchor test functional
krystofoliva Nov 12, 2025
e6c70a4
Add GitHub Actions CI workflow for automated testing
krystofoliva Nov 13, 2025
cf0b8f6
Fix GitHub Actions: remove clippy/format, update Rust version
krystofoliva Nov 13, 2025
0303edf
solana setup fix
krystofoliva Nov 13, 2025
84c28c9
Update Rust version to 1.82.0 for icu dependencies
krystofoliva Nov 13, 2025
7254690
fixing tests
krystofoliva Nov 13, 2025
4579c7d
change rust toolchain
krystofoliva Nov 13, 2025
d509df0
change rust toolchain 2
krystofoliva Nov 13, 2025
ac2bb95
change rust toolchain 3
krystofoliva Nov 13, 2025
c270dfd
change rust toolchain 4
krystofoliva Nov 13, 2025
f5ca2ff
change rust toolchain 5
krystofoliva Nov 13, 2025
35b743f
change rust toolchain 6, change Cargo.loc version to 3
krystofoliva Nov 13, 2025
8763808
change rust toolchain 7
krystofoliva Nov 13, 2025
9ae8bda
change Cargo.lock
krystofoliva Nov 13, 2025
90f8904
change solana cli
krystofoliva Nov 13, 2025
824a2da
change solana cli 2
krystofoliva Nov 13, 2025
c5b9147
setup solana path
krystofoliva Nov 14, 2025
90472e0
setup solana path 2
krystofoliva Nov 14, 2025
4b745ac
setup solana path 3
krystofoliva Nov 14, 2025
a0f0b00
updated test.yml
krystofoliva Nov 14, 2025
05ace7a
test updated
krystofoliva Nov 14, 2025
f3bdc7e
updated test.yml
krystofoliva Nov 14, 2025
adf79a8
updated test.yml
krystofoliva Nov 14, 2025
3f65f3f
tests based on solana docs
krystofoliva Nov 17, 2025
6fd1e2e
Fix: Rename Integration_basic.rs to integration_basic.rs for Linux coโ€ฆ
krystofoliva Nov 17, 2025
a31fc87
building on devnet test
krystofoliva Nov 17, 2025
996edb3
Add verified build workflow for devnet
krystofoliva Nov 17, 2025
31e9a3c
Update workflow with safe PR testing
krystofoliva Nov 18, 2025
61ea025
removed Github token
krystofoliva Nov 18, 2025
4124ad0
Restore workflow files and fix GITHUB_TOKEN issue
krystofoliva Nov 18, 2025
4107f5e
prepare enviroment to accept the secrets
krystofoliva Nov 18, 2025
a6537bc
inheriting secrets fix
krystofoliva Nov 18, 2025
28892cd
added env solana verify and development build job usage
krystofoliva Nov 19, 2025
9c31b75
added verified solana build
krystofoliva Nov 19, 2025
4e3e14a
trying to fix skipped ver build
krystofoliva Nov 19, 2025
70d916e
Fix verified-build job: add Rust setup and fix artifact download
krystofoliva Nov 19, 2025
66edb10
mainnet automation in order to verify and use sqauds in the future
krystofoliva Nov 19, 2025
199242a
workflow_dispatch mainnet fix
krystofoliva Nov 19, 2025
022b37c
fix: mainnet visible in GH actions
krystofoliva Nov 19, 2025
c4cb292
anable squads
krystofoliva Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/build-deploy-devnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Build and Deploy to Devnet

# This workflow builds and deploys CBMM to Solana devnet
# - On pull_request: Builds only (no deployment) for testing
# - On workflow_dispatch: Full build, deploy, and verification
env:
SOLANA_VERIFY_VERSION: "0.4.1"

on:
workflow_dispatch:
inputs:
priority_fee:
description: "Priority fee for transactions (lamports)"
required: false
default: "300000"
type: string
pull_request:
branches: [main]
paths:
- '.github/workflows/build-deploy-devnet.yml'
- 'programs/**'
- 'Cargo.toml'
- 'Anchor.toml'

permissions:
contents: write

jobs:
build:
name: Build and Deploy CBMM to Devnet
uses: Woody4618/anchor-github-action-example/.github/workflows/development_workflow.yaml@main
with:
program: "cbmm"
program-id: "CBMMzs3HKfTMudbXifeNcw3NcHQhZX7izDBKoGDLRdjj"
network: "devnet"
# Only deploy when manually triggered, not on PRs (safety feature)
deploy: ${{ github.event_name == 'workflow_dispatch' }}
upload_idl: ${{ github.event_name == 'workflow_dispatch' }}
verify: ${{ github.event_name == 'workflow_dispatch' }}
use-squads: true
priority-fee: ${{ github.event.inputs.priority_fee || '300000' }}
secrets:
DEVNET_SOLANA_DEPLOY_URL: ${{ secrets.DEVNET_SOLANA_DEPLOY_URL }}
DEVNET_DEPLOYER_KEYPAIR: ${{ secrets.DEVNET_DEPLOYER_KEYPAIR }}
PROGRAM_ADDRESS_KEYPAIR: ${{ secrets.PROGRAM_ADDRESS_KEYPAIR }}

# Added Verified Build step for workflow_dispatch events
verified-build:
name: Verified Build
needs: build
if: ${{ github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Install solana-verify
run: cargo install solana-verify --version ${{ env.SOLANA_VERIFY_VERSION }}

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: cbmm-so
path: build/
pattern: '*.so'
merge-multiple: false

- name: Find binary file
run: |
echo "Looking for binary files:"
find build/ -name "*.so" -type f || echo "No .so files found"
ls -la build/ || echo "Build directory not found"

- name: Upload verified build
run: |
BINARY_PATH=$(find build/ -name "cbmm.so" -o -name "*.so" | head -1)
if [ -z "$BINARY_PATH" ]; then
echo "Error: Binary file not found"
exit 1
fi
echo "Using binary: $BINARY_PATH"
solana-verify upload \
--program-id CBMMzs3HKfTMudbXifeNcw3NcHQhZX7izDBKoGDLRdjj \
--binary "$BINARY_PATH" \
--repository ${{ github.repository }} \
--commit-hash ${{ github.sha }}

- name: Verify build on-chain
run: |
BINARY_PATH=$(find build/ -name "cbmm.so" -o -name "*.so" | head -1)
solana-verify verify \
--program-id CBMMzs3HKfTMudbXifeNcw3NcHQhZX7izDBKoGDLRdjj \
--url devnet
41 changes: 41 additions & 0 deletions .github/workflows/mainnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Release to mainnet with IDL and verify

on:
workflow_dispatch:
inputs:
priority_fee:
description: "Priority fee for transactions"
required: false
default: "300000"
type: string
pull_request:
branches: [main]
paths:
- '.github/workflows/mainnet.yml'
- 'programs/**'
- 'Cargo.toml'
- 'Anchor.toml'

permissions:
contents: write

jobs:
build:
name: Build and Deploy CBMM to Mainnet
uses: solana-developers/github-workflows/.github/workflows/reusable-build.yaml@v0.2.9
with:
program: "cbmm"
program-id: "CBMMzs3HKfTMudbXifeNcw3NcHQhZX7izDBKoGDLRdjj"
network: "mainnet"
deploy: true
upload_idl: true
verify: true
use-squads: false
priority-fee: ${{ github.event.inputs.priority_fee }}

secrets:
MAINNET_SOLANA_DEPLOY_URL: ${{ secrets.MAINNET_SOLANA_DEPLOY_URL }}
MAINNET_DEPLOYER_KEYPAIR: ${{ secrets.MAINNET_DEPLOYER_KEYPAIR }}
PROGRAM_ADDRESS_KEYPAIR: ${{ secrets.PROGRAM_ADDRESS_KEYPAIR }}
MAINNET_MULTISIG: ${{ secrets.MAINNET_MULTISIG }}
MAINNET_MULTISIG_VAULT: ${{ secrets.MAINNET_MULTISIG_VAULT }}
34 changes: 34 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Anchor Tests

on:
push:
branches: [main, master, develop]
paths:
- "programs/**"
- "tests/**"
- "src/**"
- "Anchor.toml"
- "Cargo.toml"
- "Cargo.lock"
pull_request:
branches: [main, master, develop]
paths:
- "programs/**"
- "tests/**"
- "src/**"
- "Anchor.toml"
- "Cargo.toml"
- "Cargo.lock"
workflow_dispatch:
inputs:
program:
description: "Program to test"
required: false
default: "cbmm"
type: string

jobs:
test:
uses: solana-developers/github-workflows/.github/workflows/test.yaml@v0.2.9
with:
program: ${{ github.event.inputs.program || 'cbmm' }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ node_modules
test-ledger
.yarn
.keypairs
docs/*.md
4 changes: 2 additions & 2 deletions Anchor.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ cbmm = "CBMMzs3HKfTMudbXifeNcw3NcHQhZX7izDBKoGDLRdjj"
url = "https://api.apr.dev"

[provider]
cluster = "devnet"
wallet = "./.keypairs/authority.json"
cluster = "localnet"
wallet = "~/.config/solana/id.json"

[scripts]
test = "cargo test -p cbmm -- --nocapture && yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
Loading
Loading