From 6fb2a58099ae13e6c3ce27900dced00de017a61c Mon Sep 17 00:00:00 2001 From: spypsy Date: Fri, 7 Mar 2025 11:58:50 +0000 Subject: [PATCH 1/7] WIP nightly --- spartan/bootstrap.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/spartan/bootstrap.sh b/spartan/bootstrap.sh index 8c9b7cea6055..785880898903 100755 --- a/spartan/bootstrap.sh +++ b/spartan/bootstrap.sh @@ -63,6 +63,10 @@ function test_cmds { echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-upgrade-rollup-version" echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-prod-deployment" fi + + if [ $(dist_tag) == "nightly" || $(dist_tag) == "spy/nightly" ]; then + echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-4epochs-sepolia" + fi } function test { @@ -123,6 +127,10 @@ case "$cmd" in FRESH_INSTALL=${FRESH_INSTALL:-true} INSTALL_METRICS=false \ ./scripts/test_kind.sh src/spartan/4epochs.test.ts ci.yaml four-epochs${NAME_POSTFIX:-} ;; + "test-kind-4epochs-sepolia") + FRESH_INSTALL=${FRESH_INSTALL:-true} INSTALL_METRICS=false SEPOLIA_RUN=true \ + ./scripts/test_kind.sh src/spartan/4epochs.test.ts ci-sepolia.yaml four-epochs${NAME_POSTFIX:-} + ;; "test-kind-transfer") # TODO(#12163) reenable bot once not conflicting with transfer OVERRIDES="blobSink.enabled=true,bot.enabled=false" \ From bfca421e8b9fd30d0b9a69d339a7ba9498ce15ca Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 12 Mar 2025 11:45:51 +0000 Subject: [PATCH 2/7] fixes & add proving test --- .../aztec-network/templates/boot-node.yaml | 2 +- spartan/aztec-network/values.yaml | 2 +- spartan/aztec-network/values/ci-sepolia.yaml | 13 +++--- spartan/bootstrap.sh | 9 +++- spartan/scripts/deploy_kind.sh | 45 ++++++++++--------- spartan/scripts/test_kind.sh | 2 +- .../end-to-end/src/spartan/4epochs.test.ts | 10 ++--- .../src/spartan/setup_test_wallets.ts | 8 ++-- yarn-project/ethereum/src/l1_tx_utils.ts | 2 +- 9 files changed, 53 insertions(+), 40 deletions(-) diff --git a/spartan/aztec-network/templates/boot-node.yaml b/spartan/aztec-network/templates/boot-node.yaml index b0897148e2c4..34eb6aa0c28e 100644 --- a/spartan/aztec-network/templates/boot-node.yaml +++ b/spartan/aztec-network/templates/boot-node.yaml @@ -75,7 +75,7 @@ spec: source /shared/config/validator-addresses {{- include "aztec-network.waitForEthereum" . | nindent 14 }} - + echo "SALT: {{ .Values.aztec.l1Salt }}" /scripts/deploy-l1-contracts.sh "{{ .Values.aztec.l1Salt }}" "{{ .Values.ethereum.chainId }}" "$VALIDATOR_ADDRESSES" volumeMounts: - name: scripts-output diff --git a/spartan/aztec-network/values.yaml b/spartan/aztec-network/values.yaml index fba758d4c757..373b33bd387d 100644 --- a/spartan/aztec-network/values.yaml +++ b/spartan/aztec-network/values.yaml @@ -57,7 +57,7 @@ aztec: proofSubmissionWindow: 64 # in L2 slots, from the start of the epoch to be proven realProofs: false - l1Salt: "42" # leave empty for random salt + l1Salt: "" # leave empty for random salt testAccounts: true l1DeploymentMnemonic: "test test test test test test test test test test test junk" # the mnemonic used when deploying contracts diff --git a/spartan/aztec-network/values/ci-sepolia.yaml b/spartan/aztec-network/values/ci-sepolia.yaml index e8842b9583ad..55217b829d5d 100644 --- a/spartan/aztec-network/values/ci-sepolia.yaml +++ b/spartan/aztec-network/values/ci-sepolia.yaml @@ -6,9 +6,7 @@ aztec: validatorKeyIndexStart: 0 proverKeyIndexStart: 3 botKeyIndexStart: 4 - -network: - setupL2Contracts: false + l1Salt: "" ethereum: chainId: "11155111" @@ -27,8 +25,7 @@ telemetry: validator: l1FixedPriorityFeePerGas: 3 l1GasLimitBufferPercentage: 15 - replicas: 3 - validatorKeys: + replicas: 8 resources: requests: memory: "512Mi" @@ -38,6 +35,12 @@ validator: sequencer: enforceTimeTable: false +fullNode: + replicas: 1 + resources: + requests: + memory: "2Gi" + cpu: "200m" bot: followChain: "PENDING" enabled: true diff --git a/spartan/bootstrap.sh b/spartan/bootstrap.sh index baac5b1c3b33..d780e5212573 100755 --- a/spartan/bootstrap.sh +++ b/spartan/bootstrap.sh @@ -65,7 +65,8 @@ function test_cmds { fi if [ $(dist_tag) == "nightly" || $(dist_tag) == "spy/nightly" ]; then - echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-4epochs-sepolia" + echo "$hash timeout -v 50m ./spartan/bootstrap.sh test-kind-4epochs-sepolia" + echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-proving" fi } @@ -128,9 +129,15 @@ case "$cmd" in ./scripts/test_kind.sh src/spartan/4epochs.test.ts ci.yaml four-epochs${NAME_POSTFIX:-} ;; "test-kind-4epochs-sepolia") + OVERRIDES="bot.enabled=false" \ FRESH_INSTALL=${FRESH_INSTALL:-true} INSTALL_METRICS=false SEPOLIA_RUN=true \ ./scripts/test_kind.sh src/spartan/4epochs.test.ts ci-sepolia.yaml four-epochs${NAME_POSTFIX:-} ;; + "test-kind-proving") + OVERRIDES="bot.enabled=false" \ + FRESH_INSTALL=${FRESH_INSTALL:-true} INSTALL_METRICS=false \ + ./scripts/test_kind.sh src/spartan/proving.test.ts ci.yaml proving${NAME_POSTFIX:-} + ;; "test-kind-transfer") # TODO(#12163) reenable bot once not conflicting with transfer OVERRIDES="blobSink.enabled=true,bot.enabled=false" \ diff --git a/spartan/scripts/deploy_kind.sh b/spartan/scripts/deploy_kind.sh index 1bd1602a2624..7ec8b6d8cf33 100755 --- a/spartan/scripts/deploy_kind.sh +++ b/spartan/scripts/deploy_kind.sh @@ -77,35 +77,29 @@ function generate_overrides { fi } +helm_set_args=( + --set images.aztec.image="aztecprotocol/aztec:$aztec_docker_tag" +) + # Some configuration values are set in the eth-devnet/config/config.yaml file # and are used to generate the genesis.json file. # We need to read these values and pass them into the eth devnet create.sh script # so that it can generate the genesis.json and config.yaml file with the correct values. if [ "$sepolia_deployment" = "true" ]; then echo "Generating sepolia accounts..." - set +x - L1_ACCOUNTS_MNEMONIC=$(./prepare_sepolia_accounts.sh "$values_file" "$mnemonic_file") - set -x -else - echo "Generating devnet config..." - ./generate_devnet_config.sh "$values_file" -fi + # Split EXTERNAL_ETHEREUM_HOSTS by comma and take first host + # set +x + export ETHEREUM_HOST=$(echo "$EXTERNAL_ETHEREUM_HOSTS" | cut -d',' -f1) + ./prepare_sepolia_accounts.sh "$values_file" 1 "$mnemonic_file" + echo "mnemonic: $mnemonic_file" + L1_ACCOUNTS_MNEMONIC="$(cat "$mnemonic_file")" + echo "L1_ACCOUNTS_MNEMONIC: $L1_ACCOUNTS_MNEMONIC" -# Install the Helm chart -echo "Cleaning up any existing Helm releases..." -helm uninstall "$helm_instance" -n "$namespace" 2>/dev/null || true -kubectl delete clusterrole "$helm_instance"-aztec-network-node 2>/dev/null || true -kubectl delete clusterrolebinding "$helm_instance"-aztec-network-node 2>/dev/null || true + # Escape the EXTERNAL_ETHEREUM_HOSTS value for Helm + ESCAPED_HOSTS=$(echo "$EXTERNAL_ETHEREUM_HOSTS" | sed 's/,/\\,/g' | sed 's/=/\\=/g') -helm_set_args=( - --set images.aztec.image="aztecprotocol/aztec:$aztec_docker_tag" -) - -# If this is a sepolia run, we need to write some values -if [ "$sepolia_deployment" = "true" ]; then - set +x helm_set_args+=( - --set ethereum.execution.externalHosts="$EXTERNAL_ETHEREUM_HOSTS" + --set ethereum.execution.externalHosts="$ESCAPED_HOSTS" --set ethereum.beacon.externalHost="$EXTERNAL_ETHEREUM_CONSENSUS_HOST" --set aztec.l1DeploymentMnemonic="$L1_ACCOUNTS_MNEMONIC" --set ethereum.deployL1ContractsPrivateKey="$L1_DEPLOYMENT_PRIVATE_KEY" @@ -118,9 +112,18 @@ if [ "$sepolia_deployment" = "true" ]; then if [ -n "${EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER:-}" ]; then helm_set_args+=(--set ethereum.beacon.apiKeyHeader="$EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER") fi - set -x + # set -x +else + echo "Generating devnet config..." + ./generate_devnet_config.sh "$values_file" fi +# Install the Helm chart +echo "Cleaning up any existing Helm releases..." +helm uninstall "$helm_instance" -n "$namespace" 2>/dev/null || true +kubectl delete clusterrole "$helm_instance"-aztec-network-node 2>/dev/null || true +kubectl delete clusterrolebinding "$helm_instance"-aztec-network-node 2>/dev/null || true + helm upgrade --install "$helm_instance" ../aztec-network \ --namespace "$namespace" \ --create-namespace \ diff --git a/spartan/scripts/test_kind.sh b/spartan/scripts/test_kind.sh index c9f0de2856b7..a789bf0f32d4 100755 --- a/spartan/scripts/test_kind.sh +++ b/spartan/scripts/test_kind.sh @@ -85,7 +85,7 @@ copy_stern_to_log # uses VALUES_FILE, CHAOS_VALUES, AZTEC_DOCKER_TAG and INSTALL_TIMEOUT optional env vars if [ "$fresh_install" != "no-deploy" ]; then - deploy_result=$(OVERRIDES="$OVERRIDES" ./deploy_kind.sh $namespace $values_file $sepolia_run $mnemonic_file $helm_instance) + OVERRIDES="$OVERRIDES" ./deploy_kind.sh $namespace $values_file $sepolia_run $mnemonic_file $helm_instance fi if [ "$install_metrics" = "true" ]; then diff --git a/yarn-project/end-to-end/src/spartan/4epochs.test.ts b/yarn-project/end-to-end/src/spartan/4epochs.test.ts index 8a59b9e36861..e683fca03d7a 100644 --- a/yarn-project/end-to-end/src/spartan/4epochs.test.ts +++ b/yarn-project/end-to-end/src/spartan/4epochs.test.ts @@ -27,7 +27,7 @@ describe('token transfer test', () => { let testWallets: TestWallets; let PXE_URL: string; - let ETHEREUM_HOSTS: string; + let ETHEREUM_HOSTS: string[]; const forwardProcesses: ChildProcess[] = []; beforeAll(async () => { @@ -47,12 +47,12 @@ describe('token transfer test', () => { containerPort: config.CONTAINER_ETHEREUM_PORT, }); forwardProcesses.push(ethProcess); - ETHEREUM_HOSTS = `http://127.0.0.1:${ethPort}`; + ETHEREUM_HOSTS = [`http://127.0.0.1:${ethPort}`]; } else { if (!config.ETHEREUM_HOSTS) { throw new Error('ETHEREUM_HOSTS must be set for sepolia runs'); } - ETHEREUM_HOSTS = config.ETHEREUM_HOSTS; + ETHEREUM_HOSTS = config.ETHEREUM_HOSTS.split(','); } const { process: sequencerProcess, port: sequencerPort } = await startPortForward({ @@ -75,7 +75,7 @@ describe('token transfer test', () => { ); } else { PXE_URL = config.PXE_URL; - ETHEREUM_HOSTS = config.ETHEREUM_HOSTS; + ETHEREUM_HOSTS = config.ETHEREUM_HOSTS.split(','); testWallets = await setupTestWalletsWithTokens(PXE_URL, MINT_AMOUNT, logger); } @@ -94,7 +94,7 @@ describe('token transfer test', () => { }); it('transfer tokens for 4 epochs', async () => { - const ethCheatCodes = new EthCheatCodesWithState([ETHEREUM_HOSTS]); + const ethCheatCodes = new EthCheatCodesWithState(ETHEREUM_HOSTS); const l1ContractAddresses = await testWallets.pxe.getNodeInfo().then(n => n.l1ContractAddresses); // Get 4 epochs const rollupCheatCodes = new RollupCheatCodes(ethCheatCodes, l1ContractAddresses); diff --git a/yarn-project/end-to-end/src/spartan/setup_test_wallets.ts b/yarn-project/end-to-end/src/spartan/setup_test_wallets.ts index d66dad86ff01..814fec2e2fd4 100644 --- a/yarn-project/end-to-end/src/spartan/setup_test_wallets.ts +++ b/yarn-project/end-to-end/src/spartan/setup_test_wallets.ts @@ -50,7 +50,7 @@ export async function setupTestWalletsWithTokens( export async function deployTestWalletWithTokens( pxeUrl: string, nodeUrl: string, - l1RpcUrl: string, + l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, @@ -71,7 +71,7 @@ export async function deployTestWalletWithTokens( const claims = await Promise.all( fundedAccounts.map(a => - bridgeL1FeeJuice(l1RpcUrl, mnemonicOrPrivateKey, pxe, a.getAddress(), initialFeeJuice, logger), + bridgeL1FeeJuice(l1RpcUrls, mnemonicOrPrivateKey, pxe, a.getAddress(), initialFeeJuice, logger), ), ); @@ -97,7 +97,7 @@ export async function deployTestWalletWithTokens( } async function bridgeL1FeeJuice( - l1RpcUrl: string, + l1RpcUrls: string[], mnemonicOrPrivateKey: string, pxe: PXE, recipient: AztecAddress, @@ -105,7 +105,7 @@ async function bridgeL1FeeJuice( log: Logger, ) { const { l1ChainId } = await pxe.getNodeInfo(); - const chain = createEthereumChain([l1RpcUrl], l1ChainId); + const chain = createEthereumChain(l1RpcUrls, l1ChainId); const { publicClient, walletClient } = createL1Clients(chain.rpcUrls, mnemonicOrPrivateKey, chain.chainInfo); const portal = await L1FeeJuicePortalManager.new(pxe, publicClient, walletClient, log); diff --git a/yarn-project/ethereum/src/l1_tx_utils.ts b/yarn-project/ethereum/src/l1_tx_utils.ts index 1b75f3f28a5a..30551e2eba7a 100644 --- a/yarn-project/ethereum/src/l1_tx_utils.ts +++ b/yarn-project/ethereum/src/l1_tx_utils.ts @@ -107,7 +107,7 @@ export const l1TxUtilsConfigMappings: ConfigMappingsType = { maxGwei: { description: 'Maximum gas price in gwei', env: 'L1_GAS_PRICE_MAX', - ...bigintConfigHelper(100n), + ...bigintConfigHelper(500n), }, maxBlobGwei: { description: 'Maximum blob fee per gas in gwei', From 6fd602457c1fd75b46aaddbec518237548995d3a Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 12 Mar 2025 12:06:20 +0000 Subject: [PATCH 3/7] correct nightly check --- spartan/bootstrap.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spartan/bootstrap.sh b/spartan/bootstrap.sh index 0406e5e30664..3068f741c253 100755 --- a/spartan/bootstrap.sh +++ b/spartan/bootstrap.sh @@ -65,7 +65,7 @@ function test_cmds { echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-cli-upgrade-with-lock" fi - if [ $(dist_tag) == "nightly" || $(dist_tag) == "spy/nightly" ]; then + if [ $(dist_tag) == *"nightly"* ]; then echo "$hash timeout -v 50m ./spartan/bootstrap.sh test-kind-4epochs-sepolia" echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-proving" fi From 26495dc0e5a4250b7538aa2f3f8169793d11aaec Mon Sep 17 00:00:00 2001 From: spypsy Date: Wed, 12 Mar 2025 12:23:06 +0000 Subject: [PATCH 4/7] rm log --- spartan/aztec-network/templates/boot-node.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/spartan/aztec-network/templates/boot-node.yaml b/spartan/aztec-network/templates/boot-node.yaml index 08c9687f76fe..d1dc7efb71df 100644 --- a/spartan/aztec-network/templates/boot-node.yaml +++ b/spartan/aztec-network/templates/boot-node.yaml @@ -76,7 +76,6 @@ spec: source /shared/config/validator-addresses {{- include "aztec-network.waitForEthereum" . | nindent 14 }} - echo "SALT: {{ .Values.aztec.l1Salt }}" /scripts/deploy-l1-contracts.sh "{{ .Values.aztec.l1Salt }}" "{{ .Values.ethereum.chainId }}" "$VALIDATOR_ADDRESSES" volumeMounts: - name: scripts-output From b00bb3d932b7a5c651f208890c87fa7beb701cb9 Mon Sep 17 00:00:00 2001 From: spypsy Date: Mon, 17 Mar 2025 12:29:23 +0000 Subject: [PATCH 5/7] env vars --- .github/workflows/ci3.yml | 10 +++++++++- ci3/bootstrap_ec2 | 6 ++++++ spartan/bootstrap.sh | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci3.yml b/.github/workflows/ci3.yml index b69fff7b6d32..fd502b547195 100755 --- a/.github/workflows/ci3.yml +++ b/.github/workflows/ci3.yml @@ -56,13 +56,16 @@ jobs: run: echo "CI is not run on drafts." && exit 1 - name: CI Full Override - # TODO consolidate legacy labels to just ci-full. if: | contains(github.event.pull_request.labels.*.name, 'e2e-all') || contains(github.event.pull_request.labels.*.name, 'network-all') || contains(github.event.pull_request.labels.*.name, 'ci-full') run: echo "CI_FULL=1" >> $GITHUB_ENV + - name: CI Nightly Check + if: contains(github.ref, '-nightly.') + run: echo "CI_NIGHTLY=1" >> $GITHUB_ENV + - name: Setup run: | # Ensure we can SSH into the spot instances we request. @@ -86,6 +89,11 @@ jobs: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} CI: 1 + # nightly test env vars + EXTERNAL_ETHEREUM_HOSTS: "https://json-rpc.${{ secrets.GCP_SEPOLIA_URL }}?key=${{ secrets.GCP_SEPOLIA_API_KEY }},${{ secrets.INFURA_SEPOLIA_URL }}" + EXTERNAL_ETHEREUM_CONSENSUS_HOST: "https://beacon.${{ secrets.GCP_SEPOLIA_URL }}" + EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY: ${{ secrets.GCP_SEPOLIA_API_KEY }} + EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER: "X-goog-api-key" run: | ./ci.sh ec2 diff --git a/ci3/bootstrap_ec2 b/ci3/bootstrap_ec2 index 8fa1a9661f0d..78f394965496 100755 --- a/ci3/bootstrap_ec2 +++ b/ci3/bootstrap_ec2 @@ -189,6 +189,12 @@ ssh ${ssh_args:-} -F $ci3/aws/build_instance_ssh_config ubuntu@$ip " -e LOCAL_GROUP_ID=\$(id -g) \ -e CI=$CI \ -e CI_FULL=$CI_FULL \ + -e CI_NIGHTLY=${CI_NIGHTLY:-0} \ + -e EXTERNAL_ETHEREUM_HOSTS=${EXTERNAL_ETHEREUM_HOSTS:-} \ + -e EXTERNAL_ETHEREUM_CONSENSUS_HOST=${EXTERNAL_ETHEREUM_CONSENSUS_HOST:-} \ + -e EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY=${EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY:-} \ + -e EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER=${EXTERNAL_ETHEREUM_CONSENSUS_HOST_API_KEY_HEADER:-} \ + -e L1_DEPLOYMENT_PRIVATE_KEY=${L1_DEPLOYMENT_PRIVATE_KEY:-} \ -e DRY_RUN=${DRY_RUN:-0} \ -e DOCKERHUB_PASSWORD=${DOCKERHUB_PASSWORD:-} \ -e AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-} \ diff --git a/spartan/bootstrap.sh b/spartan/bootstrap.sh index df879fc9b99f..b915c783ea90 100755 --- a/spartan/bootstrap.sh +++ b/spartan/bootstrap.sh @@ -64,7 +64,7 @@ function test_cmds { echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-cli-upgrade-with-lock" fi - if [ $(dist_tag) == *"nightly"* ]; then + if [ "$CI_NIGHTLY" -eq 1 ]; then echo "$hash timeout -v 50m ./spartan/bootstrap.sh test-kind-4epochs-sepolia" echo "$hash timeout -v 30m ./spartan/bootstrap.sh test-kind-proving" fi From f5452f9320bb9aee8b34d44b18103e344b5e45f6 Mon Sep 17 00:00:00 2001 From: spypsy Date: Mon, 17 Mar 2025 13:45:37 +0000 Subject: [PATCH 6/7] undo comment removal --- .github/workflows/ci3.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci3.yml b/.github/workflows/ci3.yml index fd502b547195..72207dfc324d 100755 --- a/.github/workflows/ci3.yml +++ b/.github/workflows/ci3.yml @@ -56,6 +56,7 @@ jobs: run: echo "CI is not run on drafts." && exit 1 - name: CI Full Override + # TODO consolidate legacy labels to just ci-full. if: | contains(github.event.pull_request.labels.*.name, 'e2e-all') || contains(github.event.pull_request.labels.*.name, 'network-all') || From 9cf9d7f0311fa98d0e2eac5fb8744f5f521dff4e Mon Sep 17 00:00:00 2001 From: spypsy Date: Mon, 17 Mar 2025 14:43:31 +0000 Subject: [PATCH 7/7] fix nightly release tag job --- .github/workflows/nightly-release-tag.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly-release-tag.yml b/.github/workflows/nightly-release-tag.yml index e83c5a3d5de5..5b495358afd8 100644 --- a/.github/workflows/nightly-release-tag.yml +++ b/.github/workflows/nightly-release-tag.yml @@ -4,6 +4,10 @@ on: # Run the workflow every night at 2:00 AM UTC. - cron: "0 2 * * *" +# Add permissions for the GitHub Actions bot to push tags +permissions: + contents: write + concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -15,11 +19,10 @@ jobs: - uses: actions/checkout@v4 # Extract the current release version from the manifest. - # Adjust the jq filter if your manifest structure differs. # Then, create a nightly tag using the current version and the current UTC date. - name: Create Nightly Tag run: | - current_version=$(jq -r '.version' .release-please-manifest.json) + current_version=$(jq -r '."."' .release-please-manifest.json) echo "Current version: $current_version" # Format the tag as: -nightly. nightly_tag="${current_version}-nightly.$(date -u +%Y%m%d)"