Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
ae4db56
chore: docker workflow refactor
auricom Nov 6, 2025
4450668
factorize image tag
auricom Nov 6, 2025
ee4cf3d
permissions
auricom Nov 6, 2025
11b9797
remove workflow dispatch
auricom Nov 6, 2025
7c7fba0
docker job can only be called by ci_release workflow
auricom Nov 6, 2025
a8e26bf
permission
auricom Nov 6, 2025
4f5f756
Potential fix for code scanning alert no. 145: Workflow does not cont…
auricom Nov 6, 2025
6b740fd
tag
auricom Nov 6, 2025
fa932c4
permissions
auricom Nov 6, 2025
8df4b4b
optim
auricom Nov 6, 2025
dfa9266
chore: reorg dockerfiles
auricom Nov 7, 2025
15daa50
docker tags for apps
auricom Nov 7, 2025
dd4a854
release is not created
auricom Nov 7, 2025
71ce4ca
docs
auricom Nov 7, 2025
52a0c80
perm
auricom Nov 7, 2025
e9f72a8
Merge branch 'main' into claude/docker_rework
auricom Nov 7, 2025
db4c064
fix permissions
auricom Nov 10, 2025
ec03c9c
permissions
auricom Nov 10, 2025
15799e8
fix readme
auricom Nov 10, 2025
0baeed0
lint
auricom Nov 10, 2025
fe3dded
lint
auricom Nov 10, 2025
89a8296
hadolint
auricom Nov 10, 2025
3440dcb
lint
auricom Nov 10, 2025
009ab68
lint
auricom Nov 10, 2025
af13741
release
auricom Nov 10, 2025
be661cb
hadolint
auricom Nov 10, 2025
616347b
alpine 3.22.2
auricom Nov 10, 2025
4cb7bbe
fix
auricom Nov 10, 2025
e95423b
fix
auricom Nov 10, 2025
a81ba54
fix
auricom Nov 10, 2025
b6bca3e
md
auricom Nov 10, 2025
5d38f73
release
auricom Nov 10, 2025
14f8f8d
Merge branch 'main' into claude/docker_rework
auricom Nov 10, 2025
811e200
fix
auricom Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion .github/workflows/ci_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,31 @@
lint:
uses: ./.github/workflows/lint.yml

docker:
uses: ./.github/workflows/docker.yml
secrets: inherit
permissions:
packages: write
with:
# tag with the pr in the format of pr-1234 or the tag / branch if it is not a PR.
image-tag: ${{ github.event.pull_request.number && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}

test:
uses: ./.github/workflows/test.yml
secrets: inherit
with:
# tag with the pr in the format of pr-1234 or the tag / branch if it is not a PR.
image-tag: ${{ github.event.pull_request.number && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}

docker-tests:
needs: docker
uses: ./.github/workflows/docker-tests.yml
secrets: inherit
with:
# tag with the pr in the format of pr-1234 or the tag / branch if it is not a PR.
image-tag: ${{ github.event.pull_request.number && format('pr-{0}', github.event.pull_request.number) || github.ref_name }}

proto:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {}
uses: ./.github/workflows/proto.yml

# branch_name trims ref/heads/ from github.ref to access a clean branch name
Expand All @@ -49,7 +66,7 @@

# Make a release if this is a manually trigger job, i.e. workflow_dispatch
release:
needs: [lint, test, proto, branch_name]
needs: [lint, docker, test, docker-tests, proto, branch_name]
runs-on: ubuntu-latest
if: ${{ github.event_name == 'workflow_dispatch' }}
permissions: "write-all"
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/docker-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Docker E2E Tests workflow
# This workflow runs tests that require Docker images to be built first
name: Docker E2E Tests
on:
workflow_call:
inputs:
image-tag:
required: true
type: string
workflow_dispatch:
inputs:
image-tag:
description: 'Docker image tag to use for tests (e.g., v1.2.3, pr-123, sha-abc123)'
required: true
type: string

jobs:
docker-tests:
name: Docker E2E Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: set up go
uses: actions/setup-go@v6
with:
go-version-file: ./test/docker-e2e/go.mod
- name: Run Docker E2E Tests
run: make test-docker-e2e
env:
EV_NODE_IMAGE_REPO: ghcr.io/${{ github.repository }}
EV_NODE_IMAGE_TAG: ${{ inputs.image-tag }}

docker-upgrade-tests:
name: Docker Upgrade E2E Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: set up go
uses: actions/setup-go@v6
with:
go-version-file: ./test/docker-e2e/go.mod
- name: Run Docker Upgrade E2E Tests
run: make test-docker-upgrade-e2e
env:
EVM_SINGLE_IMAGE_REPO: ghcr.io/${{ github.repository_owner }}/ev-node-evm-single
EVM_SINGLE_NODE_IMAGE_TAG: ${{ inputs.image-tag }}
75 changes: 75 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Docker Images Build workflow
# This workflow builds and pushes Docker images to GHCR
name: Build Docker Images
on:
workflow_call:
inputs:
image-tag:
required: true
type: string
description: 'Docker image tag (e.g., v1.2.3, pr-123, sha-abc123)'
workflow_dispatch:
inputs:
image-tag:
description: 'Docker image tag to build (e.g., v1.2.3, sha-abc123)'
required: true
type: string
push:
tags:
- 'v*'
release:
types: [published]

jobs:
build-images:
name: Build ${{ matrix.image-name }}
# skip building images for merge groups as they are already built on PRs and main
if: github.event_name != 'merge_group'
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
matrix:
include:
- image-name: ev-node
dockerfile: Dockerfile
context: .
- image-name: ev-node-evm-single
dockerfile: apps/evm/single/Dockerfile
context: .
- image-name: local-da
dockerfile: da/cmd/local-da/Dockerfile
context: .
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Determine image tag
id: tag
run: |
if [ "${{ github.event_name }}" = "release" ] || [ "${{ github.event_name }}" = "push" ]; then
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
elif [ "${{ github.event_name }}" = "pull_request" ]; then
echo "tag=pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT
else
echo "tag=${{ inputs.image-tag }}" >> $GITHUB_OUTPUT
fi

- name: Build and push ${{ matrix.image-name }} Docker image
uses: docker/build-push-action@v6
with:
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
push: true
platforms: linux/amd64,linux/arm64
tags: ghcr.io/${{ github.repository_owner }}/${{ matrix.image-name }}:${{ steps.tag.outputs.tag }}
123 changes: 1 addition & 122 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,132 +10,11 @@ on:
workflow_dispatch:
inputs:
image-tag:
description: 'Docker image tag to build (e.g., v1.2.3, sha-abc123)'
description: 'Docker image tag to use for tests (e.g., v1.2.3, sha-abc123)'
required: true
type: string

jobs:
build-ev-node-image:
name: Build ev-node Docker Image
# skip building images for merge groups as they are already built on PRs and main
if: github.event_name != 'merge_group'
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push ev-node Docker image
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ghcr.io/${{ github.repository_owner }}/ev-node:${{ inputs.image-tag }}

build-ev-node-evm-single-image:
name: Build ev-node EVM Single Docker Image
# skip building images for merge groups as they are already built on PRs and main
if: github.event_name != 'merge_group'
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push ev-node-evm-single Docker image
uses: docker/build-push-action@v6
with:
context: .
file: apps/evm/single/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ghcr.io/${{ github.repository_owner }}/ev-node-evm-single:${{ inputs.image-tag }}

build-local-da-image:
name: Build local-da Docker Image
# skip building images for merge groups as they are already built on PRs and main
if: github.event_name != 'merge_group'
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push local-da Docker image
uses: docker/build-push-action@v6
with:
context: .
file: da/cmd/local-da/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: ghcr.io/${{ github.repository_owner }}/local-da:${{ inputs.image-tag }}

docker-tests:
name: Docker E2E Tests
needs: build-ev-node-image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: set up go
uses: actions/setup-go@v6
with:
go-version-file: ./test/docker-e2e/go.mod
- name: Run Docker E2E Tests
run: make test-docker-e2e
env:
EV_NODE_IMAGE_REPO: ghcr.io/${{ github.repository }}
EV_NODE_IMAGE_TAG: ${{ inputs.image-tag }}

docker-upgrade-tests:
name: Docker Upgrade E2E Tests
needs: build-ev-node-evm-single-image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: set up go
uses: actions/setup-go@v6
with:
go-version-file: ./test/docker-e2e/go.mod
- name: Run Docker Upgrade E2E Tests
run: make test-docker-upgrade-e2e
env:
EVM_SINGLE_IMAGE_REPO: ghcr.io/${{ github.repository_owner }}/ev-node-evm-single
EVM_SINGLE_NODE_IMAGE_TAG: ${{ inputs.image-tag }}

build_all-apps:
name: Build All ev-node Binaries
runs-on: ubuntu-latest
Expand Down
Loading