Skip to content
Merged
Changes from all commits
Commits
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
37 changes: 30 additions & 7 deletions .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ on:

env:
REGISTRY: ghcr.io
PROVER_IMAGE_NAME: ${{ github.repository }}
STREAMR_IMAGE_NAME: ${{ github.repository }}/streamr-client

jobs:
build-and-push-images:
Expand All @@ -24,6 +22,24 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v5

- name: Normalize image names
run: |
echo "PROVER_IMAGE_NAME=${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
echo "STREAMR_IMAGE_NAME=${GITHUB_REPOSITORY,,}/streamr-client" >> $GITHUB_ENV

# Free up ~15-30 GB by removing unused pre-installed tools/packages
- name: Free disk space
uses: jlumbroso/free-disk-space@main
with:
tool-cache: true
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

# Multi-platform setup
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
Expand All @@ -32,6 +48,7 @@ jobs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# Login only on push
- name: Log in to GitHub Container Registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
Expand All @@ -40,50 +57,56 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# Build and push Prover image (energy-tracker)
# Prover image (energy-tracker)
- name: Extract metadata for Prover image
id: meta-prover
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.PROVER_IMAGE_NAME }}

- name: Build and push Prover image
id: docker_build_prover
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-prover.outputs.tags }}
labels: ${{ steps.meta-prover.outputs.labels }}
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.PROVER_IMAGE_NAME }}:buildcache
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.PROVER_IMAGE_NAME }}:buildcache,mode=max

- name: Generate attestation for Prover image
if: github.event_name != 'pull_request'
uses: actions/attest-build-provenance@v3
with:
subject-name: ${{ env.REGISTRY }}/${{ env.PROVER_IMAGE_NAME }}
subject-digest: ${{ steps.build-and-push-prover.outputs.digest }}
subject-digest: ${{ steps.docker_build_prover.outputs.digest }}
push-to-registry: true

# Build and push Streamr client image
# Streamr client image
- name: Extract metadata for Streamr client image
id: meta-streamr
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.STREAMR_IMAGE_NAME }}

- name: Build and push Streamr client image
id: docker_build_streamr
uses: docker/build-push-action@v6
with:
context: ./streamr-client
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta-streamr.outputs.tags }}
labels: ${{ steps.meta-streamr.outputs.labels }}
cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.STREAMR_IMAGE_NAME }}:buildcache
cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.STREAMR_IMAGE_NAME }}:buildcache,mode=max

- name: Generate attestation for Streamr client image
if: github.event_name != 'pull_request'
uses: actions/attest-build-provenance@v3
with:
subject-name: ${{ env.REGISTRY }}/${{ env.STREAMR_IMAGE_NAME }}
subject-digest: ${{ steps.build-and-push-streamr.outputs.digest }}
push-to-registry: true
subject-digest: ${{ steps.docker_build_streamr.outputs.digest }}
push-to-registry: true
Loading