Update workflow

This commit is contained in:
Jakub Melka
2024-07-03 14:09:09 +02:00
parent d9abc64ede
commit 69b917c1a3
3 changed files with 95 additions and 65 deletions

View File

@ -4,67 +4,105 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
fetch-artifacts: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v4
- name: Install tools - name: Install tools
run: | run: |
sudo apt-get install gh sudo apt-get install gh
sudo apt-get install jq sudo apt-get install jq
- name: Get latest run ID for Linux_AppImage - name: Get latest run ID for Linux_AppImage
id: get_linux_run_id id: get_linux_run_id
run: | run: |
latest_run=$(gh run list --workflow=Linux_AppImage --json databaseId,conclusion --jq '.[0]') latest_run=$(gh run list --workflow=Linux_AppImage --json databaseId,conclusion --jq '.[0]')
linux_run_id=$(echo $latest_run | jq -r .databaseId) linux_run_id=$(echo $latest_run | jq -r .databaseId)
echo "linux_run_id=$linux_run_id" >> $GITHUB_ENV echo "linux_run_id=$linux_run_id" >> $GITHUB_ENV
conclusion=$(echo $latest_run | jq -r .conclusion) conclusion=$(echo $latest_run | jq -r .conclusion)
if [ "$conclusion" != "success" ]; then if [ "$conclusion" != "success" ]; then
echo "Latest Linux_AppImage workflow run failed." echo "Latest Linux_AppImage workflow run failed."
exit 1 exit 1
fi fi
env: env:
GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
- name: Get latest run ID for Windows_MSI - name: Get latest run ID for Windows_MSI
id: get_windows_run_id id: get_windows_run_id
run: | run: |
latest_run=$(gh run list --workflow=Windows_MSI --json databaseId,conclusion --jq '.[0]') latest_run=$(gh run list --workflow=Windows_MSI --json databaseId,conclusion --jq '.[0]')
windows_run_id=$(echo $latest_run | jq -r .databaseId) windows_run_id=$(echo $latest_run | jq -r .databaseId)
echo "windows_run_id=$windows_run_id" >> $GITHUB_ENV echo "windows_run_id=$windows_run_id" >> $GITHUB_ENV
conclusion=$(echo $latest_run | jq -r .conclusion) conclusion=$(echo $latest_run | jq -r .conclusion)
if [ "$conclusion" != "success" ]; then if [ "$conclusion" != "success" ]; then
echo "Latest Windows_MSI workflow run failed." echo "Latest Windows_MSI workflow run failed."
exit 1 exit 1
fi fi
env: env:
GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
- name: Download Linux_AppImage artifact - name: Download Linux_AppImage artifact
run: | run: |
mkdir -p artifacts/linux mkdir -p artifacts
gh run download ${{ env.linux_run_id }} --name Linux_AppImage -D artifacts/linux/ echo "Downloading artifacts from run ID: ${{ env.linux_run_id }}..."
gh run download ${{ env.linux_run_id }} -D artifacts
echo "Artifacts downloaded to artifacts directory."
env:
GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
- name: Download Windows_MSI artifact - name: Download Windows_MSI artifact
run: | run: |
mkdir -p artifacts/windows mkdir -p artifacts
gh run download ${{ env.windows_run_id }} --name Windows_MSI -D artifacts/windows/ echo "Downloading artifacts from run ID: ${{ env.windows_run_id }}..."
gh run download ${{ env.windows_run_id }} -D artifacts
echo "Artifacts downloaded to artifacts directory."
env:
GH_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
- name: Create Release Draft - name: Read version
id: create_release id: get_version
uses: actions/create-release@v1 run: |
env: version=$(grep -oP 'set\(PDF4QT_VERSION \K[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' "CMakeLists.txt")
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }} echo "Version: $version"
with: echo "pdf4qt_version=$version" >> $GITHUB_ENV
tag_name: ''
release_name: "Release Draft" - name: Rezip zip file
draft: true id: rezip_zip_file
prerelease: false run: |
generate_release_notes: true cd artifacts/PDF4QT-Windows-${{ env.pdf4qt_version }}.zip
files: | zip -r ../PDF4QT-Windows-${{ env.pdf4qt_version }}.zip.backup *
artifacts/linux/*
artifacts/windows/* - name: Rename zip archive
run: |
rm -rf artifacts/PDF4QT-Windows-${{ env.pdf4qt_version }}.zip/
mv artifacts/PDF4QT-Windows-${{ env.pdf4qt_version }}.zip.backup artifacts/PDF4QT-Windows-${{ env.pdf4qt_version }}.zip
- name: Correct file paths
run: |
find artifacts -mindepth 2 -type f -exec sh -c 'mv "$1" "artifacts/$(basename "$1")_moved"' _ {} \;
find artifacts -type d -empty -delete
for f in artifacts/*_moved; do
mv "$f" "${f/_moved/}"
done
- name: List all files recursively
run: |
echo "Listing all files in artifacts:"
find artifacts -type f -print
- name: Create Release Draft
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: 'v${{ env.pdf4qt_version }}'
name: "Release of PDF4QT ${{ env.pdf4qt_version }} (Draft)"
draft: true
prerelease: false
generate_release_notes: true
token: ${{ secrets.MY_GITHUB_TOKEN }}
fail_on_unmatched_files: true
files: |
artifacts/*

View File

@ -1,10 +1,6 @@
name: Linux_AppImage name: Linux_AppImage
on: on:
push:
tags:
- 'v*'
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -1,10 +1,6 @@
name: Windows_MSI name: Windows_MSI
on: on:
push:
tags:
- 'v*'
workflow_dispatch: workflow_dispatch:
jobs: jobs: