Skip to content

Release

Release #138

Workflow file for this run

name: Release
on:
release:
types: [released]
workflow_dispatch:
inputs:
version:
description: Version
required: true
jobs:
build-arm-image:
name: Build ARM Image
runs-on: lago-runer-arm64
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log In to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Add version into docker image
id: add_version
run: |
echo "${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}" > LAGO_VERSION
echo "lago_version=${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}" >> "$GITHUB_OUTPUT"
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/arm64
push: true
tags: getlago/api:${{ steps.add_version.outputs.lago_version }}-arm64
build-args: |
SEGMENT_WRITE_KEY=${{ secrets.SEGMENT_WRITE_KEY }}
GOCARDLESS_CLIENT_ID=${{ secrets.PRODUCTION_GOCARDLESS_CLIENT_ID }}
GOCARDLESS_CLIENT_SECRET=${{ secrets.PRODUCTION_GOCARDLESS_CLIENT_SECRET }}
LAGO_OAUTH_URL=https://proxy.getlago.com
build-amd-image:
name: Build AMD Image
runs-on: lago-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log In to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Add version into docker image
id: add_version
run: |
echo "${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}" > LAGO_VERSION
echo "lago_version=${{ github.event_name == 'release' && github.event.release.tag_name || github.event.inputs.version }}" >> "$GITHUB_OUTPUT"
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64
push: true
tags: getlago/api:${{ steps.add_version.outputs.lago_version }}-amd64
build-args: |
SEGMENT_WRITE_KEY=${{ secrets.SEGMENT_WRITE_KEY }}
GOCARDLESS_CLIENT_ID=${{ secrets.PRODUCTION_GOCARDLESS_CLIENT_ID }}
GOCARDLESS_CLIENT_SECRET=${{ secrets.PRODUCTION_GOCARDLESS_CLIENT_SECRET }}
LAGO_OAUTH_URL=https://proxy.getlago.com
create-manifest:
runs-on: lago-runner
needs: [build-arm-image, build-amd-image]
steps:
- uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Create version manifest and Push
run: |
docker manifest create \
getlago/api:${{ steps.build-amd-image.outputs.add_version.outputs.lago_version }} \
--amend getlago/api:${{ steps.build-amd-image.outputs.add_version.outputs.lago_version }}-amd64 \
--amend getlago/api:${{ steps.build-amd-image.outputs.add_version.outputs.lago_version }}-arm64
docker manifest push getlago/api:${{ steps.build-amd-image.outputs.add_version.outputs.lago_version }}