Skip to content

deployment: add proof archive bucket name to env gateway overlays #2251

deployment: add proof archive bucket name to env gateway overlays

deployment: add proof archive bucket name to env gateway overlays #2251

name: Sequencer CdK8s Dry Test
on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize
paths:
- ".github/workflows/sequencer_cdk8s-test.yml"
- "crates/apollo_deployments/**"
- "deployments/sequencer/**"
- "deployments/anvil/**"
- "deployments/dummy_eth2strk_oracle/**"
- "deployments/dummy_recorder/**"
jobs:
# https://graphite.com/docs/stacking-and-ci
optimize_ci:
runs-on: ubuntu-24.04
timeout-minutes: 60
outputs:
skip: ${{ steps.check_skip.outputs.skip }}
steps:
- name: Optimize CI
id: check_skip
uses: withgraphite/graphite-ci-action@v0.0.9
with:
graphite_token: ${{ secrets.GRAPHITE_CI_OPTIMIZER_TOKEN }}
prepare:
runs-on: ubuntu-24.04
needs: optimize_ci
if: needs.optimize_ci.outputs.skip == 'false'
timeout-minutes: 60
env:
cluster: test
namespace: test
layout: hybrid
overlay: hybrid.testing.node-0
overlay2: hybrid.testing.all-constructs
monitoring_dashboard_file: ${{ github.workspace }}/deployments/monitoring/examples/output/dashboards/sequencer_node_dashboard.json
cdk8s_sequencer_path: ${{ github.workspace }}/deployments/sequencer
steps:
- name: Checkout sequencer
uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v5.4.0
with:
python-version: "3.10"
cache: "pip"
- name: Setup Node
uses: actions/setup-node@v4.2.0
with:
node-version: 22
- name: Install pip dependencies
run: python3 -m pip install black pipenv
- name: Install cdk8s-cli
run: npm install -g cdk8s-cli@2.198.334
# Synthesize the CDK8s Sequencer app.
- name: CDk8s synth
working-directory: ${{ env.cdk8s_sequencer_path }}
run: |
echo "Importing CDK8s Sequencer app..."
cdk8s import
echo "Installing pip dependencies..."
pipenv install
echo "Running port uniqueness tests..."
pipenv run pytest test/test_port_uniqueness.py -v
echo "Synthesizing CDK8s Sequencer app with overlay ${{ env.overlay }}..."
cdk8s synth --app "pipenv run python -m main --namespace ${{ env.namespace }} -l ${{ env.layout }} -o ${{ env.overlay }} --monitoring-dashboard-file ${{ env.monitoring_dashboard_file }} --cluster ${{ env.cluster }}" --output dist1
echo "Synthesizing CDK8s Sequencer app with overlay ${{ env.overlay2 }}..."
cdk8s synth --app "pipenv run python -m main --namespace ${{ env.namespace }} -l ${{ env.layout }} -o ${{ env.overlay2 }} --monitoring-dashboard-file ${{ env.monitoring_dashboard_file }} --cluster ${{ env.cluster }}" --output dist2
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cdk8s-artifacts
path: |
${{ env.cdk8s_sequencer_path }}/dist1
${{ env.cdk8s_sequencer_path }}/dist2
${{ env.cdk8s_sequencer_path }}/resources
validate:
runs-on: ubuntu-24.04
needs: [prepare, optimize_ci]
if: success() && needs.optimize_ci.outputs.skip == 'false'
timeout-minutes: 60
env:
dist1_path: ./cdk8s-artifacts/dist1
dist2_path: ./cdk8s-artifacts/dist2
crds_path: ./cdk8s-artifacts/resources/crds
steps:
- name: Setup go lang
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Setup kubectl-validate
run: go install sigs.k8s.io/kubectl-validate@latest
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: cdk8s-artifacts
path: cdk8s-artifacts
merge-multiple: true
- name: kubectl validation test for version 1.33
run: kubectl validate ${{ env.dist1_path }} ${{ env.dist2_path }} --local-crds ${{ env.crds_path }} --version 1.33
continue-on-error: false
- name: kubectl validation test for version 1.34
run: kubectl validate ${{ env.dist1_path }} ${{ env.dist2_path }} --local-crds ${{ env.crds_path }} --version 1.34
continue-on-error: false
prepare-production-overlays:
runs-on: ubuntu-24.04
needs: optimize_ci
if: needs.optimize_ci.outputs.skip == 'false'
timeout-minutes: 60
env:
cdk8s_sequencer_path: ${{ github.workspace }}/deployments/sequencer
steps:
- name: Checkout sequencer
uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v5.4.0
with:
python-version: "3.10"
cache: "pip"
- name: Setup Node
uses: actions/setup-node@v4.2.0
with:
node-version: 22
- name: Install pip dependencies
run: python3 -m pip install black pipenv
- name: Install cdk8s-cli
run: npm install -g cdk8s-cli@2.198.334
- name: CDK8s synth production overlays
working-directory: ${{ env.cdk8s_sequencer_path }}
run: |
cdk8s import
pipenv install
for overlay_prefix in mainnet sepolia-alpha sepolia-integration; do
echo "Synthesizing hybrid.${overlay_prefix}..."
cdk8s synth --app "pipenv run python -m main --namespace test -l hybrid -o hybrid.${overlay_prefix} -o hybrid.common.dummy_for_testing" --output dist
done
prepare-dummy-services:
runs-on: ubuntu-24.04
needs: optimize_ci
if: needs.optimize_ci.outputs.skip == 'false'
timeout-minutes: 60
strategy:
matrix:
service: [anvil, dummy_eth2strk_oracle, dummy_recorder]
env:
namespace: test
service_path: ${{ github.workspace }}/deployments/${{ matrix.service }}
steps:
- name: Checkout sequencer
uses: actions/checkout@v6
- name: Setup python
uses: actions/setup-python@v5.4.0
with:
python-version: "3.10"
cache: "pip"
- name: Setup Node
uses: actions/setup-node@v4.2.0
with:
node-version: 22
- name: Install pip dependencies
run: python3 -m pip install black pipenv
- name: Install cdk8s-cli
run: npm install -g cdk8s-cli@2.198.334
- name: CDK8s synth
working-directory: ${{ env.service_path }}
run: |
echo "Importing CDK8s ${{ matrix.service }} app..."
cdk8s import
echo "Installing pip dependencies..."
pipenv install
echo "Synthesizing CDK8s ${{ matrix.service }} app..."
cdk8s synth --app "pipenv run python -m main --namespace ${{ env.namespace }}"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cdk8s-${{ matrix.service }}-artifacts
path: ${{ env.service_path }}/dist
validate-dummy-services:
runs-on: ubuntu-24.04
needs: [prepare-dummy-services, optimize_ci]
if: success() && needs.optimize_ci.outputs.skip == 'false'
timeout-minutes: 60
strategy:
matrix:
service: [anvil, dummy_eth2strk_oracle, dummy_recorder]
steps:
- name: Setup go lang
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Setup kubectl-validate
run: go install sigs.k8s.io/kubectl-validate@latest
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: cdk8s-${{ matrix.service }}-artifacts
path: dist
- name: kubectl validation test for version 1.33
run: kubectl validate ./dist --version 1.33
continue-on-error: false
- name: kubectl validation test for version 1.34
run: kubectl validate ./dist --version 1.34
continue-on-error: false