refactor: Putting fail-fast
ans an input param
#1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Lazarus Release Workflow | ||
defaults: | ||
run: | ||
shell: bash | ||
on: | ||
workflow_call: | ||
inputs: | ||
config: | ||
description: A JSON object containing configuration values | ||
required: true | ||
type: string | ||
fail-fast: | ||
description: Fail Fast on the jobs | ||
required: true | ||
type: bool | ||
jobs: | ||
strategy: | ||
fail-fast: ${{ fromJSON(inputs.config).fail-fast }} | ||
release-app: | ||
name: release [${{ fromJSON(inputs.config).tag }}] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Build env from inputs.config | ||
run: | | ||
( | ||
echo "app-name=${{ fromJSON(inputs.config).app-name }}" | ||
echo "tag=${{ fromJSON(inputs.config).tag }}" | ||
echo "cliff-cfg=${{ fromJSON(inputs.config).cliff-cfg }}" | ||
echo "win=${{ fromJSON(inputs.config).win }}" | ||
echo "lin=${{ fromJSON(inputs.config).lin }}" | ||
echo "osx=${{ fromJSON(inputs.config).osx }}" | ||
) >> "$GITHUB_ENV" | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
submodules: true | ||
- name: Download the Release binaries | ||
uses: actions/download-artifact@v4 | ||
- name: List files | ||
run: | | ||
ls -alF "${{ env.lin }}" | ||
ls -alF "${{ env.win }}" | ||
ls -alF "${{ env.osx }}" | ||
- name: Create release archive | ||
run: | | ||
if [ "${{ env.lin }}" != "" ]; then | ||
cd "${{ env.lin }}" | ||
chmod +x "${{ env.app-name }}" | ||
tar -zcvf "../${{ env.lin }}-${{ env.tag }}.tgz" * | ||
cd .. | ||
fi | ||
if [ "${{ env.win }}" != "" ]; then | ||
cd "${{ env.win }}" | ||
zip "../${{ env.win }}-${{ env.tag }}.zip" * | ||
cd .. | ||
fi | ||
if [ "${{ env.osx }}" != "" ]; then | ||
cd "${{ env.osx }}" | ||
chmod +x "${{ env.app-name }}" | ||
tar -zcvf "../${{ env.osx }}-${{ env.tag }}.tgz" * | ||
cd .. | ||
fi | ||
- name: Generate Release Notes | ||
id: git-cliff | ||
uses: orhun/git-cliff-action@v2 | ||
with: | ||
config: ${{ env.cliff-cfg }} | ||
args: --latest --strip header | ||
env: | ||
OUTPUT: CHANGES.md | ||
- name: Create GitHub release | ||
uses: softprops/action-gh-release@v1 | ||
with: | ||
name: Lazarus ${{ env.app-name }} ${{ env.tag }} | ||
body: ${{ steps.git-cliff.outputs.content }} | ||
files: | | ||
*.tgz | ||
*.zip | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
# - name: Print some values | ||
# run: | | ||
# echo Config: ${{ inputs.config }} | ||
# echo Tag: ${{ env.tag }} | ||
# echo GitHub Ref: ${{ github.ref }} | ||
# echo GitHub Ref Name: ${{ github.ref_name }} | ||
# echo GitHub Ref Type: ${{ github.ref_type }} | ||
# echo GitHub Event Name: ${{ github.event_name }} | ||
# echo GitHub Event Path: ${{ github.event_path }} | ||
# echo Tag: ${{ env.tag }} | ||
# echo Win Bin: ${{ env.win }}/${{ env.app-name }}.exe | ||
# echo Lin Bin: ${{ env.lin }}/${{ env.app-name }} | ||
# echo OSX Bin: ${{ env.osx }}/${{ env.app-name }} | ||
# echo zip win: ../${{ env.win }}-${{ env.tag }}.zip | ||
# echo tgz lin: ../${{ env.lin }}-${{ env.tag }}.tgz | ||
# echo tgz osx: ../${{ env.osx }}-${{ env.tag }}.tgz |