Circleci project setup#27
Conversation
Reviewer's GuideAdds initial CircleCI configuration with a single hello-world style workflow to verify CI is wired up. Flow diagram for CircleCI say-hello job executionflowchart TD
A[Pipeline_start] --> B[Initialize_workflow_say-hello-workflow]
B --> C[Queue_job_say-hello]
C --> D[Start_Docker_container_cimg-base-current]
D --> E[Step_checkout_code]
E --> F[Step_run_command_echo_Hello_World]
F --> G[Job_say-hello_success]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Hey - I've found 1 issue, and left some high level feedback:
- Consider renaming the
say-hellojob andsay-hello-workflowto something that reflects the actual CI purpose for this repo (e.g.,build-and-test) so the pipeline is self-descriptive when viewed in CircleCI. - Right now the job only echoes a message; it may be more useful to wire in at least the basic project steps you intend to run in CI (e.g., installing dependencies and running the primary build/test command) so this config represents a minimal but functional pipeline.
- If this repository has nontrivial setup or dependencies, you might want to add caching (e.g., for node_modules or other tooling) and specify a more appropriate CircleCI convenience image that matches your stack instead of the generic
cimg/base:current.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider renaming the `say-hello` job and `say-hello-workflow` to something that reflects the actual CI purpose for this repo (e.g., `build-and-test`) so the pipeline is self-descriptive when viewed in CircleCI.
- Right now the job only echoes a message; it may be more useful to wire in at least the basic project steps you intend to run in CI (e.g., installing dependencies and running the primary build/test command) so this config represents a minimal but functional pipeline.
- If this repository has nontrivial setup or dependencies, you might want to add caching (e.g., for node_modules or other tooling) and specify a more appropriate CircleCI convenience image that matches your stack instead of the generic `cimg/base:current`.
## Individual Comments
### Comment 1
<location path=".circleci/config.yml" line_range="11-14" />
<code_context>
+ docker:
+ # Specify the version you desire here
+ # See: https://circleci.com/developer/images/image/cimg/base
+ - image: cimg/base:current
+
+ # Add steps to the job
</code_context>
<issue_to_address>
**suggestion:** Consider pinning the Docker image tag for reproducible builds
Using `:current` ties builds to a moving target, so behavior may change as the base image is updated. Pinning to a specific tag (for example, `cimg/base:2024.02`) makes builds more deterministic and simplifies debugging. You can still update the tag periodically as part of normal dependency maintenance.
```suggestion
docker:
# Specify the version you desire here (pinned for reproducible builds)
# See: https://circleci.com/developer/images/image/cimg/base
- image: cimg/base:2024.02
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces the foundational continuous integration setup for the project using CircleCI. It establishes the necessary configuration to automate basic checks, paving the way for more comprehensive testing and deployment workflows in the future. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a basic CircleCI configuration. I've made a couple of suggestions to improve it based on common best practices for CI/CD pipelines. Specifically, I've recommended pinning the Docker image version to ensure reproducible builds and adding a newline at the end of the configuration file.
| docker: | ||
| # Specify the version you desire here (pinned for reproducible builds) | ||
| # See: https://circleci.com/developer/images/image/cimg/base | ||
| - image: cimg/base:2024.02 |
There was a problem hiding this comment.
| say-hello-workflow: # This is the name of the workflow, feel free to change it to better match your workflow. | ||
| # Inside the workflow, you define the jobs you want to run. | ||
| jobs: | ||
| - say-hello No newline at end of file |
* feat: add SFApproveTokens action, permit flow recipe and tests (#24) * test: expand RecipeExecutor tests to support DSA accounts * feat: read recipeExecutor from registry inside StrategyExecutor * feat: make FLAction to fetch RecipeExecutor from registry * fix: remove hardcoded RecipeExecutor from core tests * feat: add DSA support to StrategyExecutor tests * chore: add fluid dex deployment on base * bump sdk and automation-sdk versions and add test for FLBoost * test: remove console logs * feat: adapt and test Permission contract with dsa wallets * fix: compiler warning * feat: make permission contracts functions internal * feat: add DSAAuth test * feat: make CheckWalletType functions internal and expand tests * feat: improve FLHelper code quality * docs: generalize dsproxy/safe references to wallet * feat: rename CheckWalletType to SmartWalletUtils * test: add test for new fetchOwnerOrWallet * feat: use generic fetchOwnerOrWallet on all places * test: add DSA support to core hardhat tests * fix: auth tests * fix: remove pragma abicoder v2 from interfaces * chore: add DSAAuth deployment on arbitrum * test: make core recipeExecutor test to work on L2s also * docs: expand the diagram to include DSA wallets * feat: generalize IInstaAccount interface for v1 and v2 * feat: add support to V1 dsa accounts in DefiSaverConnector * chore: add new test deployment for DSAAuth * feat: add DSA utils to abstract dsa cast call for v1 and v2 versions * feat: adapt foundry tests for dsa v1 support * test: adapt core tests to support v1 accounts * chore: add test deployment for DSAAuth on arbitrum * feat: abstract connector ID for all networks * docs: update github template for PRs * chore: run forge format * chore: run forge fmt * chore: remove deprecated lint config * chore: update package json * chore: run js format * fix: unused var in SkyView.js * chore: run forge format * chore: run forge format * chore: run js format * refactor: create deprecated folder * refactor: reorder and remove unused interfaces * refactor: make DS contracts as interfaces * feat: add _vendor folder * refactor: reorder utils contract and simplify interfaces * refactor: import dfs registry as interface instead or contract * chore: inline one history entries in json after contracts deployments * fix: merge conflict errors * refactor: use IAdminVault inside AdminAuth * refactor: add RecipeExecutor interface and change functions visibility * refactor: add DFSIds lib and move hardcoded Ids constants * refactor: remove selfdestruct from AdminAuth * feat: use storage interfaces * refactor: add common contract for StrategyExecutors * fix: token utils path for change network repo script * fix: use correct ds proxy registry interface * chore: set forge format max line length to 100 * chore: temporarly run forge fmt with line length of 100 * feat: remove unnecessary isAuth call * feat: add fetchDSAProxyAccounts to GeneralView * chore: add plasma feed addresses * refactor: move IVaultMain interface location * test: fix fl tests for BalancerV3 * feat: remove Linea & Insta connector addresses * feat: remove DSAProxy factory for linea and plasma * fix: wront token for wrsETH in plasma feeds * feat: remove '&eoa' usage for DSA Proxy accounts * test: remove console.log(error) * test: set default config for dsa proxy version 2 accounts * test: fix linting error in GeneralView test and console.log from Strategy executor test * fix: remove payable from kyber proxy interface * fix: fix path for TokenUtils when changing repo network * chore: add morpho deployment on arbitrum * feat: add morpho blue addresses contract * feat: use cancun transient storage on new arbitrum deployment * fix: add cancun flag for verification script * chore: sync arbitrum strategies * fix: change regex for network change script * feat: add strategy specification * test: add call for switch strategy * refactor: rename give and remove auth contract permission functions * fix: pr comments * refactor: remove DSA support from fetchOwnerOrWallet function * feat: remove auth contract permission logic for DSA * feat(sparkview.sol): add spark emode fetch functions * feat: remove dsa strategy support * chore: add new address for spark view * fix: core tests * test: add tests for aave v3 collateral switch strategy * feat: add SKY_FARM in SkyView and update tests * test: add SKY farm in SkyView test * chore: add new SkyView deployment * feat: remove fetching dsa proxy accounts from general view * feat: refactor getGeneralInfo to accept dynamic array of farms * test: add basic vnet deployment script for DSA * feat: add spark referral code for fl action * test: make test_skyView_GetGeneralInfo as view * chore: add new SkyView deployment * feat: add spark view small * test: add test for disabled as collateral * chore: add SparkViewSmall deployment address * chore: add morpho fl source on arbitrum inside FLAction * feat: use public constant name instead of function * feat: remove v1 DSA support * feat: add support for summerfi wallets * feat: simplify DefiSaverConnector * feat: remove DSAUtils contract * fix: deployment script for UtilAddresses * feat: remove public constants for sentinel module and execute selector * test: setup SmartWallet test utils * fix: use optimism as network name when updating json addresses file * chore: add recipeExecutor deployment * feat: use hardcoded recipeExecutor inside connector * test: reorg Addresses for tests * test: recipe executor tests * test: update SmartWalletUtils tests and add Permission tests * feat: update connectV2DefiSaver to follow instadapp connectors convention * chore: add connectV2DefiSaver addresses * chore: add core redeployment addresses * chore: redeploy FLAction with morpho fl source on arbitrum * chore: sync strategies * feat: add SparkQuotePriceRangeTrigger * feat: add spark close strategies spec * test: add hardhat support for summerfi accounts * feat: remove old spark close strategies code * test: remove extra prank logic * test: add spark close tests * feat: add morpho blue price range trigger * feat: add morpho blue close strategy spec * test: add strategy calls for morpho blue close * feat: add FL inside morpho blue close strategies names * feat: add comments explaining why max uint can't be used * test: add tests for morpho close strategies * test: move isCloseToDebtType check to utils and replace repaySubId name * test: move isCloseToDebtType check to utils and replace repaySubId name * chore: add summerfi addrs for arbi * fix: fix PR comments * fix: interfaces fix * feat: add method for fetchin owner to GeneralView.sol * fix: add codehash for arbi and base * feat: add OP addresses and codehash * test: aave FL close to debt test * test: fix tests with DFSSell action for L2s * test: hardcode block for SparkViewMini tests * test: move init logic into helper function * style: rename SummerfiAcc -> SFProxy * test: small test refactor * feat: add deploy script * chore: add SparkQuotePriceRangeTrigger address * chore: add deployed spark close strategy * test: add deployment script * feat: fix comments for max uint in L2 spec for morpho withdraw action * chore: add MorphoBluePriceRangeTrigger address * chore: sync strategies * fix: tenderly sync script for one contract * chore: sync morpho close strategies * test: small test changes * chore: add deployment addresses * feat: apply aave v3.6 e-mode changes * feat: make label fetching future proof * feat: add middle-layer contract that delegatecalls * test: fix hardhat tests * fix: pR comments * fix: fix failing forge tests and husky * chore: add new AaveV3 view address * refactor: etherscan url fetching * chore: add missing timelock entries in jsons * feat: add support for linea and plasma for finding missing timelock entries inside script * style: name change * feat: add summerfi unsub action and fix naming to sfProxyEntryPoint * style: remove comment * feat: hardcode SERVICE_REGISTRY * fix: remove data from fallback in SFProxyEntryPoint * feat: add SummerfiUnsubV2 action * chore: add new sf deployment addresses * feat: add AdminAuth to SFProxyEntryPoint * chore: add unsub deployment actions for summerfi * feat: change SummerfiUnsub action to remove triggers too * docs: natspec * chore: add new SummerfiUnsub deployment address * test: fix failing test * test: insta dsa cleanup * feat: periphery tweeks * feat: add missing core interfaces and adapt tests * feat: add DFSIds * feat: rename checkWalletType, isDSProxy and giveWalletPermission * feat: default to 0 fee type if no TxSaverExecutor is registered * docs: improve comments for plasma linea placeholder factory addresses * chore: add new FLAction addresses for Linea and Plasma * test: fix summerfi unsub test by hardcoding block number * fix: aave v2 view REN price * feat: rename ren token address constant and move to addresses file * chore: add AaveView deployment address * test: fix tests * chore: bump dfs/sdk version --------- Co-authored-by: Rajko Zagorac <57317299+rajko-z@users.noreply.github.com> Co-authored-by: Milos Djurica <milosdjurica.work@gmail.com> Co-authored-by: Nikola Sreckovic <sreckonikola@gmail.com> * Circleci project setup (#27) * Add .circleci/config.yml * Update .circleci/config.yml Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> --------- Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com> Co-authored-by: Rajko Zagorac <57317299+rajko-z@users.noreply.github.com> Co-authored-by: Milos Djurica <milosdjurica.work@gmail.com> Co-authored-by: Nikola Sreckovic <sreckonikola@gmail.com> Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Summary
Briefly describe what this change introduces.
Type of change
Details
Provide any additional details if needed.
References
Link any existing PRs, such as SDK PRs related to this PR, or any additional references.
Checks
For New Contracts
@title,@notice,@param, etc.)?For Modifications to Existing Contracts
For Strategies
Summary by Sourcery
CI: