diff --git a/.github/workflows/manual-sol-artifacts.yaml b/.github/workflows/manual-sol-artifacts.yaml index a3180e05..10a6bb91 100644 --- a/.github/workflows/manual-sol-artifacts.yaml +++ b/.github/workflows/manual-sol-artifacts.yaml @@ -20,6 +20,15 @@ on: - sepolia - songbird + suite: + description: "Suite to deploy" + required: true + type: choice + options: + - all + - deployment.suite.tables + - deployment.suite.contract + jobs: deploy: runs-on: ubuntu-latest @@ -59,6 +68,7 @@ jobs: - name: deploy to ${{ inputs.network }} run: nix develop -c rainix-sol-artifacts env: + DEPLOYMENT_SUITE: ${{ inputs.suite }} DEPLOY_BROADCAST: '1' DEPLOYMENT_KEY: ${{ github.ref == 'refs/heads/main' && secrets.PRIVATE_KEY || secrets.PRIVATE_KEY_DEV }} ETH_RPC_URL: ${{ secrets[env.rpc_secret_name] || vars[env.rpc_secret_name] || '' }} diff --git a/script/Deploy.sol b/script/Deploy.sol index e7b45ab7..a7898db5 100644 --- a/script/Deploy.sol +++ b/script/Deploy.sol @@ -6,19 +6,29 @@ import {Script} from "forge-std/Script.sol"; import {DataContractMemoryContainer, LibDataContract} from "rain.datacontract/lib/LibDataContract.sol"; import {LibDecimalFloatDeploy} from "../src/lib/deploy/LibDecimalFloatDeploy.sol"; +bytes32 constant DEPLOYMENT_SUITE_ALL = keccak256("all"); +bytes32 constant DEPLOYMENT_SUITE_TABLES = keccak256("deployment.suite.tables"); +bytes32 constant DEPLOYMENT_SUITE_CONTRACT = keccak256("deployment.suite.contract"); + contract Deploy is Script { using LibDataContract for DataContractMemoryContainer; function run() external { uint256 deployerPrivateKey = vm.envUint("DEPLOYMENT_KEY"); + string memory suiteString = vm.envOr("DEPLOYMENT_SUITE", string("all")); + bytes32 suite = keccak256(bytes(suiteString)); DataContractMemoryContainer container = LibDecimalFloatDeploy.dataContract(); vm.startBroadcast(deployerPrivateKey); - container.writeZoltu(); + if (suite == DEPLOYMENT_SUITE_ALL || suite == DEPLOYMENT_SUITE_TABLES) { + container.writeZoltu(); + } - LibDecimalFloatDeploy.decimalFloatZoltu(); + if (suite == DEPLOYMENT_SUITE_ALL || suite == DEPLOYMENT_SUITE_CONTRACT) { + LibDecimalFloatDeploy.decimalFloatZoltu(); + } vm.stopBroadcast(); }