Skip to content

Commit

Permalink
ci: add script to recursive update dep
Browse files Browse the repository at this point in the history
  • Loading branch information
TuDo1403 authored and actions-user committed Aug 22, 2024
1 parent 5565988 commit 9faecd4
Show file tree
Hide file tree
Showing 9 changed files with 179 additions and 3 deletions.
95 changes: 95 additions & 0 deletions .github/workflows/create-storage-change-log.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Create Storage Change Log

on:
pull_request:
branches:
- mainnet
- testnet
- "release/*"
- "feature/*"
- "features/*"

env:
FOUNDRY_PROFILE: ci

jobs:
check:
strategy:
fail-fast: true

name: Foundry project
runs-on: [self-hosted, dockerize]
steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Update package with soldeer
run: forge soldeer update

- name: Recursively update dependencies
run: |
chmod +x ./update-deps.sh
./update-deps.sh
id: update-deps

- name: Run Forge build
run: |
forge --version
forge build --skip scripts tests
id: build

- name: "Setup Node"
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 #v3.4.1
with:
node-version: v16.16.0

- name: Storage Layout Check
run: |
echo "Checking storage layout..."
echo "Current branch: ${{ github.head_ref || github.ref_name }}"
echo "BASE_BRANCH: ${{ github.event.pull_request.base.ref }}"
echo "CURRENT_COMMIT_HASH: ${{ github.sha }}"
git fetch --unshallow || git fetch --all
dependencies/@storage-delta-0.3.1/run.sh ${{ github.event.pull_request.base.sha }} --omit new --contracts contracts
- name: Check for storage_delta folder
id: check-folder
run: |
if [ -d "storage_delta" ]; then
echo "storage_delta_exists=true" >> $GITHUB_OUTPUT
fi
- name: Commit and changes
if: steps.check-folder.outputs.storage_delta_exists == 'true'
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git add storage_delta
git commit -m "Add contract layout changes [CI]"
git push origin HEAD:${{ github.head_ref || github.ref_name }}
current_commit=$(git rev-parse HEAD)
previous_commit=$(git rev-parse HEAD~1)
# Move HEAD to the previous commit
git reset --soft HEAD~2

# Stage the changes in storage_delta
git add storage_delta

# Amend the previous commit
git commit --amend --no-edit

# Force push the changes
git push --force origin HEAD:${{ github.head_ref || github.ref_name }}

# Move HEAD back to the original commit
git cherry-pick $previous_commit
git cherry-pick $current_commit

18 changes: 17 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
- "release/*"
- "feature/*"
- "features/*"
- "implement-feature/**"
- "implement-feature/**/**"
pull_request:
branches:
- mainnet
Expand All @@ -30,12 +32,21 @@ jobs:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly

- name: Update package with soldeer
run: forge soldeer update

- name: Recursively update dependencies
run: |
chmod +x ./update-deps.sh
./update-deps.sh
id: update-deps

- name: Run Forge build
run: |
forge --version
Expand All @@ -46,3 +57,8 @@ jobs:
run: |
forge test --no-match-path '*forking/*' -vvv
id: test

- name: "Setup Node"
uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 #v3.4.1
with:
node-version: v16.16.0
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,5 @@ deployments/**/exported_address
config/config.json
config/config.yaml
dependencies
deployments/ronin-mainnet-shadow
deployments/ronin-mainnet-shadow
.storage_delta_cache
3 changes: 3 additions & 0 deletions contracts/mocks/MockBridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol"
import "../interfaces/IBridge.sol";

contract MockBridge is IBridge {
uint256 private _collisionVariable;
uint256 private _collisionVariable1;
uint256 private _collisionVariable2;
/// @dev Mapping from validator address => last block that the bridge operator is added
mapping(address => uint256) public bridgeOperatorAddedBlock;
/// @dev Bridge operators array
Expand Down
1 change: 1 addition & 0 deletions foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,4 @@ ronin-mainnet-shadow = "http://35.192.217.237:8545"
"@openzeppelin-v5" = { version = "5.0.2", url = "https://github.com/OpenZeppelin/openzeppelin-contracts/archive/refs/tags/v5.0.2.zip" }
"@chainlink" = { version = "1.6.0", url = "https://github.com/smartcontractkit/chainlink/archive/refs/tags/v1.6.0.zip" }
safe-smart-account = { version = "1.4.1", url = "https://github.com/safe-global/safe-smart-account/archive/refs/tags/v1.4.1.zip" }
"@storage-delta" = { version = "0.3.1", url = "https://github.com/tringuyenskymavis/storage-delta/archive/refs/tags/0.3.1.zip" }
3 changes: 2 additions & 1 deletion remappings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ hardhat/=./node_modules/hardhat/
@fdk/=dependencies/@fdk-0.3.0-beta/script/
@contract-libs/=lib/foundry-deployment-kit/lib/contract-libs/src/
@chainlink/contracts/=dependencies/@chainlink-1.6.0/contracts/
safe-smart-account/contracts/=dependencies/safe-smart-account-1.4.1/contracts/
safe-smart-account/contracts/=dependencies/safe-smart-account-1.4.1/contracts/
@storage-delta-0.3.1=dependencies/@storage-delta-0.3.1
6 changes: 6 additions & 0 deletions soldeer.lock
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,9 @@ name = "safe-smart-account"
version = "1.4.1"
source = "https://github.com/safe-global/safe-smart-account/archive/refs/tags/v1.4.1.zip"
checksum = "84348d4a1cf975f5d013cf8bdb74b8713bcccb40fceb5a1e7fc9debd27489e99"

[[dependencies]]
name = "@storage-delta"
version = "0.3.1"
source = "https://github.com/TuDo1403/storage-delta/archive/refs/tags/0.3.1.zip"
checksum = "6ff6dad83b29fcec375d314c876c8731f37742363576b883d146824a7a57ab52"
13 changes: 13 additions & 0 deletions storage_delta/contracts/mocks/MockBridge.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
--- storage_delta//contracts//mocks//MockBridge-OLD 2024-08-22 07:01:40.933771806 +0000
+++ storage_delta//contracts//mocks//MockBridge-NEW 2024-08-22 07:01:40.933771806 +0000
@@ -1,4 +1,5 @@
- 0 bridgeOperatorAddedBlock mapping(address => uint256)
- 1 bridgeOperators address[]
-
-
+🏴 0 _collisionVariable uint256
+🏴 1 _collisionVariable1 uint256
+🌱 2 _collisionVariable2 uint256
+🏳️ 3 bridgeOperatorAddedBlock mapping(address => uint256)
+🏳️ 4 bridgeOperators address[]
\ No newline at end of file
40 changes: 40 additions & 0 deletions update-deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#!/bin/bash

# Set the path to the dependencies folder
DEPENDENCIES_FOLDER="./dependencies"

# Check if the dependencies folder exists
if [ ! -d "$DEPENDENCIES_FOLDER" ]; then
echo "Dependencies folder does not exist: $DEPENDENCIES_FOLDER"
exit 1
fi

# Change directory to the dependencies folder
cd "$DEPENDENCIES_FOLDER" || exit 1

# Iterate through each subdirectory in the dependencies folder
for dir in */; do
if [ -d "$dir" ]; then
echo "Updating dependencies in: $dir"
cd "$dir" || exit 1

# Check if soldeer.lock exists
if [ ! -f "soldeer.lock" ]; then
echo "soldeer.lock does not exist in: $dir"
echo "Skipping update for: $dir"
cd ..
continue
fi

# Run soldeer update
forge soldeer update

# Return to the dependencies folder
cd ..
fi
done

# Return to the original directory
cd ..

echo "All dependencies updated."%

0 comments on commit 9faecd4

Please sign in to comment.