build: Release build automation ([#7776]).

Changelog-None
This commit is contained in:
Se7enZ
2024-12-02 14:37:13 +10:30
committed by Rusty Russell
parent b5d1acee45
commit c99b72da1c
3 changed files with 141 additions and 1 deletions

66
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,66 @@
---
# https://docs.corelightning.org/docs/release-checklist
name: "Release 🚀"
on:
push:
tags:
- 'v[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+[0-9a-z]+'
workflow_dispatch:
jobs:
check:
name: Check
outputs:
version: steps.capture.outputs.version
runs-on: ubuntu-24.04
steps:
- name: Git checkout
uses: actions/checkout@v4
with:
fetch-tags: true
- name: Determine version from pushed tag
if: ${{ github.ref_type == 'tag' }}
run: echo "VERSION=${{ github.ref_name }}" >> "$GITHUB_ENV"
# Relevant for testing branches.
- name: Determine version from pushed branch tag
if: ${{ github.ref_type == 'branch' }}
run: echo "VERSION=$(git tag --points-at HEAD)" >> "$GITHUB_ENV"
- name: Validate release
run: tools/check-release.sh --version=${VERSION}
- name: Catpure version output
id: capture
run: echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
release:
name: Release
needs: check
runs-on: ubuntu-24.04
steps:
- name: Git checkout
uses: actions/checkout@v4
with:
fetch-tags: true
# tools/build-release.sh requires lowdown
- name: Prepare base environment
run: |
sudo apt-get install -y lowdown
./configure
- name: Build environment setup
run: contrib/cl-repro.sh
- name: Build release
run: tools/build-release.sh bin-Fedora-28-amd64 bin-Ubuntu
- name: Upload release artifacts
uses: actions/upload-artifact@v4
with:
path: release/
if-no-files-found: error