Skip to content

Circleci project setup#27

Merged
Dargon789 merged 8 commits into
hotfix/curve-wapfrom
circleci-project-setup
Mar 10, 2026
Merged

Circleci project setup#27
Dargon789 merged 8 commits into
hotfix/curve-wapfrom
circleci-project-setup

Conversation

@Dargon789
Copy link
Copy Markdown
Owner

@Dargon789 Dargon789 commented Mar 10, 2026

Summary

Briefly describe what this change introduces.

Type of change

  • New Feature - A change that adds functionality.
  • Bugfix - A change that resolves an issue.
  • Tweak - A change that modifies existing features.
  • Refactor - Code improvements without changing behavior.
  • Performance - Optimizations for gas or execution efficiency.
  • Documentation - Updates to docs, comments, or NatSpec.
  • Tests - Adding or updating test coverage.
  • Chore - Maintenance, dependencies, CI/CD, deployments or tooling updates.

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

  • Does the new contract have tests?
  • Does the contract contain all the NatSpec needed (@title, @notice, @param, etc.)?
  • Is the contract deployed and the address added to the JSON file?
  • If the contract is registered, is the waitPeriod set correctly?
  • Is the contract verified and added to the Tenderly dashboard?
  • Is documentation written for the corresponding DFS action and added to GitBook?

For Modifications to Existing Contracts

  • If there were existing tests for the contract, are they adapted for the change and executed?
  • Is the contract redeployed and added to the JSON file?
  • If the contract is registered, is the waitPeriod set correctly?
  • Is the contract verified and added to the Tenderly dashboard?
  • If some parameters were changed and a breaking change was introduced, is the documentation updated on GitBook?

For Strategies

  • Are new tests added for the strategy?
  • Is the strategy deployed and added to the JSON file?

Summary by Sourcery

CI:

  • Add a basic CircleCI config with a single workflow and job that checks out the code and runs a hello-world command.

@sourcery-ai
Copy link
Copy Markdown

sourcery-ai Bot commented Mar 10, 2026

Reviewer's Guide

Adds initial CircleCI configuration with a single hello-world style workflow to verify CI is wired up.

Flow diagram for CircleCI say-hello job execution

flowchart 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]
Loading

File-Level Changes

Change Details Files
Introduce basic CircleCI pipeline configuration using a single docker-based job and workflow.
  • Add CircleCI 2.1 config file defining a docker executor using the cimg/base:current image
  • Create a say-hello job that checks out the repository and runs a simple echo command
  • Define a say-hello-workflow workflow that runs the say-hello job as the only step
.circleci/config.yml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@snyk-io
Copy link
Copy Markdown

snyk-io Bot commented Mar 10, 2026

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
🔚 Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@mergify
Copy link
Copy Markdown

mergify Bot commented Mar 10, 2026

⚠️ The sha of the head commit of this PR conflicts with #26. Mergify cannot evaluate rules on this PR. Once #26 is merged or closed, Mergify will resume processing this PR. ⚠️

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue, and left some high level feedback:

  • 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.
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>

Fix all in Cursor


Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread .circleci/config.yml Outdated
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Signed-off-by: Dargon789 <64915515+Dargon789@users.noreply.github.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Mar 10, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
defisaver-v3-contracts Ready Ready Preview, Comment Mar 10, 2026 2:04pm

@mergify
Copy link
Copy Markdown

mergify Bot commented Mar 10, 2026

⚠️ The sha of the head commit of this PR conflicts with #26. Mergify cannot evaluate rules on this PR. Once #26 is merged or closed, Mergify will resume processing this PR. ⚠️

@Dargon789 Dargon789 merged commit dc435cc into hotfix/curve-wap Mar 10, 2026
10 of 18 checks passed
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, 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

  • CircleCI Configuration: Initialized CircleCI with a basic config.yml file, including a say-hello job and workflow to establish continuous integration.
Changelog
  • .circleci/config.yml
    • Added a new CircleCI configuration file.
    • Defined a say-hello job that checks out the code and runs an echo command.
    • Created a say-hello-workflow to execute the say-hello job.
Activity
  • The pull request was opened by Dargon789 to set up CircleCI.
  • No other specific activity (comments, reviews, progress) is mentioned in the provided context.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .circleci/config.yml
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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Using the current tag for Docker images in CI can lead to unexpected build failures when the image is updated. It's a best practice to pin to a specific version to ensure build reproducibility. For example, you could use a specific version tag like cimg/base:2023.01.

      - image: cimg/base:2023.01

Comment thread .circleci/config.yml
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
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

It's a good practice to end files with a newline character. Some tools and systems might have issues with files that don't end with a newline.

      - say-hello

Dargon789 added a commit that referenced this pull request Mar 10, 2026
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant