Skip to content

Merge pull request #46 from astriaorg/noot/startup-checks #144

Merge pull request #46 from astriaorg/noot/startup-checks

Merge pull request #46 from astriaorg/noot/startup-checks #144

name: Build and Publish Docker image
# Trigger on pushes to astria branch, new semantic version tags, and pull request updates
on:
workflow_dispatch:
push:
branches:
- "release/1.13"
tags:
- "geth1.13-v[0-9]+.[0-9]+.[0-9]+"
# trigger on pull request updates when target is `astria` branch
pull_request:
branches:
- "release/1.13"
jobs:
build-and-publish-latest:
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
# Checking out the repo
- uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_TOKEN }}
# Setting up Go
- uses: actions/setup-go@v4
with:
go-version: "^1.21.x" # The Go version to download (if necessary) and use.
- run: go version
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
# https://github.com/docker/setup-buildx-action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# Generate correct tabs and labels
- name: Docker metadata
id: metadata
uses: docker/metadata-action@v4
with:
images: |
ghcr.io/astriaorg/go-ethereum
tags: |
type=ref,event=pr
type=match,pattern=geth1.13-v(.*),group=1
type=sha
# set latest tag for `astria` branch
type=raw,value=geth1.13-latest,enable=${{ github.ref == format('refs/heads/{0}', 'release/1.13') }}
- name: Build and push
uses: docker/build-push-action@v4
with:
# this gets rid of the unknown/unknown image that is created without this setting
# https://github.com/docker/build-push-action/issues/820#issuecomment-1455687416
provenance: false
context: .
# It takes a long time to build the arm image right now, so we only build it on tags which is what we use for releases, or on merges to the default branch.
platforms: ${{ (contains(github.ref, 'refs/tags/geth1.13-v') || github.ref == 'refs/heads/release/1.13') && 'linux/amd64,linux/arm64' || 'linux/amd64' }}
push: true
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}