Skip to content

Commit 24f7afe

Browse files
authored
Merge pull request #5322 from sacherjj/auto-dev-net-cron-deploy
CRON job for automatically deploying dev-net protocols
2 parents d156d55 + e3acef5 commit 24f7afe

File tree

2 files changed

+48
-11
lines changed

2 files changed

+48
-11
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: trigger-devnet-upgrade.yml
3+
permissions:
4+
contents: read
5+
id-token: write
6+
7+
on:
8+
schedule:
9+
- cron: '0 */4 * * *' # Runs every 4 hours
10+
jobs:
11+
push_dev_net_protocol_upgrade_if_needed:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
# Assign AWS PROD role to get access to production cloudfronts and S3 buckets
16+
- name: Configure AWS credentials
17+
uses: aws-actions/configure-aws-credentials@v4
18+
with:
19+
role-to-assume: ${{ secrets.AWS_ACCESS_ROLE_GENESIS }}
20+
role-session-name: GitHub_to_AWS_via_FederatedOIDC
21+
aws-region: ${{ secrets.AWS_ACCESS_REGION_GENESIS }}
22+
23+
- name: Build protocol update
24+
run: ./ci/dev_net_protocol_generate.sh
25+
26+
- name: Upload artifacts to S3
27+
run: aws s3 sync ./target/genesis/ s3://${{ secrets.AWS_BUCKET_GENESIS }}/dev-net/
28+
29+
# Required in case of overwrite
30+
- name: Invalidate CloudFront cache
31+
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_CLOUDFRONT_GENESIS }} --paths "/dev-net/*"
32+
33+

ci/build_update_package.sh

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
set -e
1010

11+
echo "## Checking if jq is installed"
1112
if command -v jq >&2; then
1213
echo "jq installed"
1314
else
@@ -33,23 +34,26 @@ GIT_HASH=$(git rev-parse HEAD)
3334
BRANCH_NAME=$(git branch --show-current)
3435
PROTOCOL_VERSION=$(cat "$PRODUCTION_GENESIS_FILES_DIR/chainspec.toml" | python3 -c "import sys, toml; print(toml.load(sys.stdin)['protocol']['version'].replace('.','_'))")
3536
NODE_VERSION=$(cat "$NODE_BUILD_DIR/Cargo.toml" | python3 -c "import sys, toml; print(toml.load(sys.stdin)['package']['version'])")
37+
echo "## Running on branch: $BRANCH_NAME with git_hash: $GIT_HASH"
38+
echo "## Protocol Version from production chainspec.toml: $PROTOCOL_VERSION"
39+
echo "## Node package version: $NODE_VERSION"
3640

37-
echo "Creating $BRANCH_NAME.latest file"
41+
echo "## Creating $BRANCH_NAME.latest file"
3842
mkdir -p "$LATEST_DIR"
3943
echo -n "$GIT_HASH" > "$LATEST_DIR/$BRANCH_NAME.latest"
4044

41-
echo "Building casper-node"
45+
echo "## Building casper-node"
4246
cd "$NODE_BUILD_DIR" || exit
4347
cargo build --release
4448

45-
echo "Building global-state-update-gen"
49+
echo "## Building global-state-update-gen"
4650
cd "$ROOT_DIR" || exit
4751
cargo build --release --package global-state-update-gen
4852
cargo deb --package global-state-update-gen
4953
mkdir -p "$UPGRADE_DIR"
5054
cp "$ROOT_DIR/target/debian/"* "$UPGRADE_DIR" || exit
5155

52-
echo "Generating bin README.md"
56+
echo "## Generating bin README.md"
5357
mkdir -p "$BIN_DIR"
5458
readme="$BIN_DIR/README.md"
5559
{
@@ -62,7 +66,7 @@ readme="$BIN_DIR/README.md"
6266
echo "git commit hash: $GIT_HASH"
6367
} > "$readme"
6468

65-
echo "Packaging bin.tar.gz"
69+
echo "## Packaging bin.tar.gz"
6670
mkdir -p "$BIN_DIR"
6771
cp "$NODE_BUILD_TARGET" "$BIN_DIR"
6872
# To get no path in tar, need to cd in.
@@ -71,7 +75,7 @@ tar -czvf "../bin.tar.gz" .
7175
cd ..
7276
rm -rf "$BIN_DIR"
7377

74-
echo "Packaging config.tar.gz"
78+
echo "## Packaging config.tar.gz"
7579
mkdir -p "$CONFIG_DIR"
7680
cp "$PRODUCTION_GENESIS_FILES_DIR/chainspec.toml" "$CONFIG_DIR"
7781
cp "$PRODUCTION_GENESIS_FILES_DIR/config-example.toml" "$CONFIG_DIR"
@@ -82,7 +86,7 @@ tar -czvf "../config.tar.gz" .
8286
cd ..
8387
rm -rf "$CONFIG_DIR"
8488

85-
echo "Packaging config-main.tar.gz"
89+
echo "## Packaging config-main.tar.gz"
8690
mkdir -p "$CONFIG_DIR"
8791
cp "$MAIN_GENESIS_FILES_DIR/chainspec.toml" "$CONFIG_DIR"
8892
cp "$MAIN_GENESIS_FILES_DIR/config-example.toml" "$CONFIG_DIR"
@@ -92,7 +96,7 @@ tar -czvf "../config-main.tar.gz" .
9296
cd ..
9397
rm -rf "$CONFIG_DIR"
9498

95-
echo "Packaging config-test.tar.gz"
99+
echo "## Packaging config-test.tar.gz"
96100
mkdir -p "$CONFIG_DIR"
97101
cp "$TEST_GENESIS_FILES_DIR/chainspec.toml" "$CONFIG_DIR"
98102
cp "$TEST_GENESIS_FILES_DIR/config-example.toml" "$CONFIG_DIR"
@@ -102,7 +106,7 @@ tar -czvf "../config-test.tar.gz" .
102106
cd ..
103107
rm -rf "$CONFIG_DIR"
104108

105-
echo "Packaging config-int.tar.gz"
109+
echo "## Packaging config-int.tar.gz"
106110
mkdir -p "$CONFIG_DIR"
107111
cp "$INT_GENESIS_FILES_DIR/chainspec.toml" "$CONFIG_DIR"
108112
cp "$INT_GENESIS_FILES_DIR/config-example.toml" "$CONFIG_DIR"
@@ -112,8 +116,8 @@ tar -czvf "../config-int.tar.gz" .
112116
cd ..
113117
rm -rf "$CONFIG_DIR"
114118

115-
echo "Packaging config-dev.tar.gz"
116-
mkdir -p "$DEV_CONFIG_DIR"
119+
echo "## Packaging config-dev.tar.gz"
120+
mkdir -p "$CONFIG_DIR"
117121
cp "$DEV_GENESIS_FILES_DIR/chainspec.toml" "$CONFIG_DIR"
118122
cp "$DEV_GENESIS_FILES_DIR/config-example.toml" "$CONFIG_DIR"
119123
# To get no path in tar, need to cd in.

0 commit comments

Comments
 (0)