Files
warewulf/.github/actions/generate/action.yml
xu yang 53cf8b5845 fix the nightly release build failure
Signed-off-by: xu yang <xyang@ciq.com>
2024-05-01 00:08:10 -06:00

129 lines
3.6 KiB
YAML

name: 'Generate warewulf metadata'
description: 'Generate warewulf.spec and dist, collect commits info'
inputs:
token:
description: "Github token"
required: true
event-id:
description: "Github event id"
required: true
outputs:
should-continue:
description: "Whether other jobs should continue"
value: ${{ steps.should-continue.outputs.continue }}
version:
description: "Version value"
value: ${{ steps.dist.outputs.version }}
release-id:
description: "First stage release id"
value: ${{ steps.release.outputs.id }}
runs:
using: "composite"
steps:
- name: Extract current branch tag
run: |
echo "BRANCH=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
echo "TAG=`./script/get-version.sh`" >> $GITHUB_ENV
shell: bash
- name: Extract last 24 hours commits info
id: commits
run: |
echo "raw=`git reflog ${{ env.BRANCH }} --since="24 hours ago"`" >> $GITHUB_OUTPUT
echo "commits=`git log ${{ env.BRANCH }} --pretty --since="24 hours ago" | jq --raw-input . | jq --slurp . | jq -c .`" >> $GITHUB_OUTPUT
shell: bash
- name: Whether should continue
id: should-continue
run: |
if [[ "${{ steps.commits.outputs.raw }}" ]]; then
echo "continue=true" >> $GITHUB_OUTPUT
else
echo "continue=false" >> $GITHUB_OUTPUT
fi
shell: bash
- name: Build spec and dist
if: steps.should-continue.outputs.continue == 'true'
run: |
make warewulf.spec dist
shell: bash
- name: Set DIST
if: steps.should-continue.outputs.continue == 'true'
id: dist
run: |
dist="warewulf-${{ env.TAG }}.tar.gz"
if [[ ! -f "$dist" ]];then
for f in warewulf-*.tar.gz; do
if [[ -e "$f" ]]; then
dist="$f"
break
fi
done
fi
echo "DIST=$dist" >> $GITHUB_ENV
version=`echo $dist | sed 's/warewulf-//' | sed 's/\.tar\.gz//'`
echo "version=$version" >> $GITHUB_OUTPUT
shell: bash
- name: Upload warewulf.spec
if: steps.should-continue.outputs.continue == 'true'
uses: actions/upload-artifact@v3
with:
name: warewulf.spec
path: warewulf.spec
- name: Upload DIST
if: steps.should-continue.outputs.continue == 'true'
uses: actions/upload-artifact@v3
with:
name: ${{ env.DIST }}
path: ${{ env.DIST }}
- name: Write nightly release content
if: steps.should-continue.outputs.continue == 'true'
run: |
cat << EOF >> nightly.release.note
THIS IS A NIGHTLY RELEASE
This release contains latest commits, which is a feature unstable version
Reflog:
${{ steps.commits.outputs.raw }}
Commits:
${{ steps.commits.outputs.commits }}
EOF
shell: bash
- name: Nightly dist release
uses: xresloader/upload-to-github-release@v1
if: steps.should-continue.outputs.continue == 'true'
env:
GITHUB_TOKEN: ${{ inputs.token }}
with:
release_id: ${{ inputs.event-id }}
delete_file: "warewulf-*.tar.gz;warewulf-*.rpm"
file: ${{ env.DIST }}
tag_name: "nightly"
prerelease: true
draft: false
default_release_name: "warewulf nightly release"
- name: Update nightly release content
if: steps.should-continue.outputs.continue == 'true'
uses: tubone24/update_release@v1.3.1
id: release
env:
GITHUB_TOKEN: ${{ inputs.token }}
TAG_NAME: "nightly"
with:
body_path: nightly.release.note