Please describe your proposed solution.
We propose to provide a CI/CD pipeline using Gitlab runners and the Cardano-Tools Python library to develop and deploy a suite of tests that can be run on new releases of the Cardano node. The CI/CD capabilities of Gitlab enable automated deployment of test code to a server that has been set up with a synced Cardano node running on the testnet. Automated tests will exercise and evaluate the following core functions of the Cardano node:
- Create a set of wallet keys and send/receive funds to/from the resulting address.
- Mint and burn a native token, i.e., an NFT.
- Create, register, and retire a stake pool.
- Delegate a wallet to a stake pool.
Please describe how your proposed solution will address the Challenge that you have submitted it in.
This project positively impacts developer productivity by providing deployment and testing automation. Further, the unit tests developed in the library also serve as documentation and code samples that serve as working examples of how to execute common tasks that Cardano developers need to do in the course of their work.
What are the main risks that could prevent you from delivering the project successfully and please explain how you will mitigate each risk?
The automated testing of certain capabilities requires key prerequisites:
- Fund transfer and token minting require a wallet containing testnet funds.
- The ability to register a stake pool also requires testnet funds.
- A known set of valid private keys for a testnet wallet.
These items require access to a testnet fund "faucet", which is currently publicly accessible and hosted by the IOG team. These and other such issues may make the initial setup of the test node more tedious, but the automated tests we have proposed have a high likelihood of success.