Skip to content

Docker

Docker #7368

Workflow file for this run

name: Docker
# Trigger on pushes to master branch, new semantic version tags, and pull request updates
on:
workflow_dispatch:
inputs:
tag:
description: Git branch, or tag to build from.
required: false
target:
description: Target to build.
required: false
type: choice
options:
- composer
- conductor
- sequencer
- sequencer-relayer
- evm-bridge-withdrawer
- cli
merge_group:
push:
branches:
- "main"
tags:
- "**-v[0-9]+.[0-9]+.[0-9]+"
- "**-v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+"
- "**-v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+"
- "**-v[0-9]+.[0-9]+.[0-9]+-rc[0-9]+"
pull_request:
types:
- opened
- synchronize
- reopened
- labeled
jobs:
run_checker:
uses: ./.github/workflows/reusable-run-checker.yml
composer:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'composer')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: mhgvgvsjnx
package-name: composer
binary-name: composer
tag: ${{ inputs.tag }}
force: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'composer' }}
secrets: inherit
conductor:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'conductor')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: zrh9t1d84s
package-name: conductor
binary-name: conductor
tag: ${{ inputs.tag }}
force: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'conductor' }}
secrets: inherit
sequencer:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'sequencer')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: brzhxfbv9b
package-name: sequencer
binary-name: sequencer
tag: ${{ inputs.tag }}
force: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'sequencer' }}
secrets: inherit
sequencer-relayer:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'sequencer-relayer')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: 86q4kz4wfs
package-name: sequencer-relayer
binary-name: sequencer-relayer
tag: ${{ inputs.tag }}
force: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'sequencer-relayer' }}
secrets: inherit
evm-bridge-withdrawer:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'evm-bridge-withdrawer')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: dl81f3fc6x
package-name: evm-bridge-withdrawer
binary-name: bridge-withdrawer
tag: ${{ inputs.tag }}
force: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'evm-bridge-withdrawer' }}
secrets: inherit
cli:
needs: run_checker
if: needs.run_checker.outputs.run_docker == 'true' || (github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'cli')
uses: "./.github/workflows/reusable-docker-build.yml"
permissions:
contents: read
id-token: write
packages: write
with:
depot-project-id: kcchkd09m0
package-name: astria-cli
binary-name: cli
tag: ${{ inputs.tag }}
secrets: inherit
smoke-test:
needs: [run_checker, composer, conductor, sequencer, sequencer-relayer, evm-bridge-withdrawer, cli]
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'astriaorg/astria') && (github.event_name == 'merge_group' || needs.run_checker.outputs.run_docker == 'true')
runs-on: buildjet-8vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v4
- name: Install just
uses: taiki-e/install-action@just
- name: Install kind
uses: helm/kind-action@v1
with:
install_only: true
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Smoke Test Environment
timeout-minutes: 10
run: |
TAG=sha-$(git rev-parse --short HEAD)
just deploy cluster
kubectl create secret generic regcred --from-file=.dockerconfigjson=$HOME/.docker/config.json --type=kubernetes.io/dockerconfigjson
echo -e "\n\nDeploying with astria images tagged $TAG"
just deploy smoke-test $TAG
- name: Run Smoke test
timeout-minutes: 3
run: |
TAG=sha-$(git rev-parse --short HEAD)
just run-smoke-test $TAG
smoke-cli:
needs: [run_checker, composer, conductor, sequencer, sequencer-relayer, evm-bridge-withdrawer, cli]
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'astriaorg/astria') && (github.event_name == 'merge_group' || needs.run_checker.outputs.run_docker == 'true')
runs-on: buildjet-8vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v4
- name: Install just
uses: taiki-e/install-action@just
- name: Install kind
uses: helm/kind-action@v1
with:
install_only: true
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Smoke Test Environment
timeout-minutes: 5
run: |
TAG=sha-$(git rev-parse --short HEAD)
just deploy cluster
kubectl create secret generic regcred --from-file=.dockerconfigjson=$HOME/.docker/config.json --type=kubernetes.io/dockerconfigjson
echo -e "\n\nDeploying with astria images tagged $TAG"
just deploy smoke-cli $TAG
- name: Run Smoke test
timeout-minutes: 3
run: |
TAG=sha-$(git rev-parse --short HEAD)
just run-smoke-cli $TAG
ibc-bridge-test:
needs: [ run_checker, composer, conductor, sequencer, sequencer-relayer, evm-bridge-withdrawer, cli ]
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'astriaorg/astria') && (github.event_name == 'merge_group' || needs.run_checker.outputs.run_docker == 'true')
runs-on: buildjet-8vcpu-ubuntu-2204
steps:
- uses: actions/checkout@v4
- name: Install just
uses: taiki-e/install-action@just
- name: Install kind
uses: helm/kind-action@v1
with:
install_only: true
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Setup IBC Bridge Test Environment
timeout-minutes: 8
run: |
TAG=sha-$(git rev-parse --short HEAD)
just deploy cluster
kubectl create secret generic regcred --from-file=.dockerconfigjson=$HOME/.docker/config.json --type=kubernetes.io/dockerconfigjson
echo -e "\n\nDeploying with astria images tagged $TAG"
just ibc-test deploy $TAG
- name: Run IBC ICS20 Transfer test
timeout-minutes: 3
run: |
TAG=sha-$(git rev-parse --short HEAD)
just ibc-test run $TAG
docker:
if: ${{ always() && !cancelled() }}
needs: [composer, conductor, sequencer, sequencer-relayer, evm-bridge-withdrawer, cli, smoke-test, smoke-cli, ibc-bridge-test]
uses: ./.github/workflows/reusable-success.yml
with:
success: ${{ !contains(needs.*.result, 'failure') }}