mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-23 06:55:13 +01:00
- Temporarily adding `rc` tag trigger for testing `Build and push multi-platform docker images` action flow before the final release. - Added some variable inputs for testing like repo, platforms, etc. - Added more logs for future debugging.
114 lines
3.4 KiB
YAML
114 lines
3.4 KiB
YAML
name: Build and push multi-platform docker images
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- '^v[0-9]{2}\.[0-9]{2}(\.[0-9]{1,2})?([a-zA-Z0-9]*)?$'
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'Release version'
|
|
required: true
|
|
|
|
repository-name:
|
|
description: 'Docker repository name'
|
|
default: 'elementsproject'
|
|
required: false
|
|
|
|
platforms-to-build:
|
|
description: 'List of platforms to build'
|
|
default: 'linux/amd64,linux/arm64,linux/arm/v7'
|
|
required: false
|
|
|
|
push-latest:
|
|
description: 'Push the latest tag also?'
|
|
default: 'false'
|
|
required: false
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
|
|
- name: Setup Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Log in to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKER_USERNAME }}
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
|
- name: Set up values
|
|
id: set-values
|
|
run: |
|
|
if [ "${{ github.event.inputs.version }}" != "" ]; then
|
|
VERSION=${{ github.event.inputs.version }}
|
|
elif [ "${{ github.ref_type }}" == "tag" ]; then
|
|
VERSION=${{ github.ref_name }}
|
|
else
|
|
echo "No version provided and no tag found."
|
|
exit 1
|
|
fi
|
|
echo "VERSION=$VERSION" >> $GITHUB_ENV
|
|
|
|
if [ "${{ github.event.inputs.repository-name }}" != "" ]; then
|
|
REPONAME=${{ github.event.inputs.repository-name }}
|
|
else
|
|
REPONAME="elementsproject"
|
|
fi
|
|
echo "REPONAME=$REPONAME" >> $GITHUB_ENV
|
|
|
|
if [ "${{ github.event.inputs.platforms-to-build }}" != "" ]; then
|
|
PLATFORMS=${{ github.event.inputs.platforms-to-build }}
|
|
else
|
|
PLATFORMS="linux/amd64,linux/arm64,linux/arm/v7"
|
|
fi
|
|
echo "PLATFORMS=$PLATFORMS" >> $GITHUB_ENV
|
|
|
|
if [
|
|
"${{ github.event.inputs.push-latest }}" == "true" ||
|
|
( "${{ github.ref_type }}" == "tag" && [[ ! "${{ env.VERSION }}" =~ rc ]] )
|
|
]; then
|
|
PUSHLATEST="true"
|
|
else
|
|
PUSHLATEST="false"
|
|
fi
|
|
echo "PUSHLATEST=$PUSHLATEST" >> $GITHUB_ENV
|
|
|
|
- name: Set Tags
|
|
id: set-tags
|
|
run: |
|
|
TAGS="${{ env.REPONAME }}/lightningd:${{ env.VERSION }}"
|
|
if [ "${{ env.PUSHLATEST }}" == "true" ]; then
|
|
TAGS="$TAGS,${{ env.REPONAME }}/lightningd:latest"
|
|
fi
|
|
echo "TAGS=$TAGS" >> $GITHUB_ENV
|
|
|
|
- name: Print GitHub Ref Values
|
|
run: |
|
|
echo "GITHUB REF TYPE: ${{ github.ref_type }}"
|
|
echo "GITHUB REF NAME: ${{ github.ref_name }}"
|
|
echo "EVENT INPUT VERSION: ${{ github.event.inputs.version }}"
|
|
echo "EVENT INPUT REPO: ${{ github.event.inputs.repository-name }}"
|
|
echo "EVENT INPUT PLATFORMS: ${{ github.event.inputs.platforms-to-build }}"
|
|
echo "EVENT INPUT PUSH LATEST: ${{ github.event.inputs.push-latest }}"
|
|
echo "VERSION ENV: ${{ env.VERSION }}"
|
|
echo "REPO NAME: ${{ env.REPONAME }}"
|
|
echo "PLATFORMS: ${{ env.PLATFORMS }}"
|
|
echo "PUSH LATEST: ${{ env.PUSHLATEST }}"
|
|
echo "TAGS: ${{ env.TAGS }}"
|
|
|
|
- name: Build and push Docker image
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
push: true
|
|
platforms: ${{ env.PLATFORMS }}
|
|
tags: ${{ env.TAGS }}
|