Skip to content

Commit

Permalink
[ci] Simplify tmpnet monitoring action
Browse files Browse the repository at this point in the history
Incorporate the following into the action to simplify usage:
- Configure network shutdown delay to ensure a final metrics scrape
- Save tmpnet dir as a github artifact
  • Loading branch information
maru-ava committed Feb 21, 2025
1 parent 8f34860 commit 71d46bf
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 18 deletions.
8 changes: 8 additions & 0 deletions .github/actions/run-monitored-tmpnet-cmd/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ inputs:
required: true
filter_by_owner:
default: ''
artifact_name:
default: 'tmpnet-data'
prometheus_username:
required: true
prometheus_password:
Expand Down Expand Up @@ -65,9 +67,15 @@ runs:
shell: bash
run: ${{ inputs.run }}
env:
TMPNET_DELAY_NETWORK_SHUTDOWN: true # Ensure shutdown waits for a final metrics scrape
GH_REPO: ${{ inputs.repository_owner }}/${{ inputs.repository_name }}
GH_WORKFLOW: ${{ inputs.workflow }}
GH_RUN_ID: ${{ inputs.run_id }}
GH_RUN_NUMBER: ${{ inputs.run_number }}
GH_RUN_ATTEMPT: ${{ inputs.run_attempt }}
GH_JOB_ID: ${{ inputs.job }}
- name: Upload tmpnet network dir
uses: ./.github/actions/upload-tmpnet-artifact
if: always()
with:
name: ${{ inputs.artifact_name }}
22 changes: 5 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,13 @@ jobs:
- name: Run e2e tests
uses: ./.github/actions/run-monitored-tmpnet-cmd
with:
run: E2E_SERIAL=1 ./scripts/tests.e2e.sh --delay-network-shutdown
run: E2E_SERIAL=1 ./scripts/tests.e2e.sh
artifact_name: e2e-tmpnet-data
filter_by_owner: avalanchego-e2e
prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }}
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
loki_username: ${{ secrets.LOKI_ID || '' }}
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
- name: Upload tmpnet network dir
uses: ./.github/actions/upload-tmpnet-artifact
if: always()
with:
name: e2e-tmpnet-data
e2e_existing_network:
runs-on: ubuntu-latest
steps:
Expand All @@ -88,16 +84,12 @@ jobs:
- name: Run e2e tests with existing network
uses: ./.github/actions/run-monitored-tmpnet-cmd
with:
run: E2E_SERIAL=1 ./scripts/tests.e2e.existing.sh --delay-network-shutdown
run: E2E_SERIAL=1 ./scripts/tests.e2e.existing.sh
artifact_name: e2e-existing-network-tmpnet-data
prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }}
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
loki_username: ${{ secrets.LOKI_ID || '' }}
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
- name: Upload tmpnet network dir
uses: ./.github/actions/upload-tmpnet-artifact
if: always()
with:
name: e2e-existing-network-tmpnet-data
Upgrade:
runs-on: ubuntu-latest
steps:
Expand All @@ -114,15 +106,11 @@ jobs:
uses: ./.github/actions/run-monitored-tmpnet-cmd
with:
run: ./scripts/tests.upgrade.sh
artifact_name: upgrade-tmpnet-data
prometheus_username: ${{ secrets.PROMETHEUS_ID || '' }}
prometheus_password: ${{ secrets.PROMETHEUS_PASSWORD || '' }}
loki_username: ${{ secrets.LOKI_ID || '' }}
loki_password: ${{ secrets.LOKI_PASSWORD || '' }}
- name: Upload tmpnet network dir
uses: ./.github/actions/upload-tmpnet-artifact
if: always()
with:
name: upgrade-tmpnet-data
Lint:
runs-on: ubuntu-latest
steps:
Expand Down
4 changes: 3 additions & 1 deletion tests/fixture/e2e/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import (
"path/filepath"
"time"

"github.com/spf13/cast"

"github.com/ava-labs/avalanchego/tests/fixture/tmpnet"
)

Expand Down Expand Up @@ -143,7 +145,7 @@ func RegisterFlags() *FlagVars {
flag.BoolVar(
&vars.delayNetworkShutdown,
"delay-network-shutdown",
false,
cast.ToBool(GetEnvWithDefault(tmpnet.DelayNetworkShutdownEnvName, "false")),
"[optional] whether to delay network shutdown to allow a final metrics scrape.",
)
flag.BoolVar(
Expand Down
5 changes: 5 additions & 0 deletions tests/fixture/tmpnet/node_process.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ const (
var (
AvalancheGoPluginDirEnvName = config.EnvVarName(config.EnvPrefix, config.PluginDirKey)

// Only necessary for process-based nodes since nodes running in
// kube will always be assumed to be monitored and delay their
// shutdown accordingly.
DelayNetworkShutdownEnvName = "TMPNET_DELAY_NETWORK_SHUTDOWN"

errNodeAlreadyRunning = errors.New("failed to start node: node is already running")
errNotRunning = errors.New("node is not running")
)
Expand Down

0 comments on commit 71d46bf

Please sign in to comment.