Skip to content

feat: use fps_mode instead of vsync in ffmpeg (#3283) #2015

feat: use fps_mode instead of vsync in ffmpeg (#3283)

feat: use fps_mode instead of vsync in ffmpeg (#3283) #2015

Workflow file for this run

name: Build
on:
push:
paths-ignore:
- 'docs/**'
- '**.md'
pull_request:
paths-ignore:
- 'docs/**'
- '**.md'
branches-ignore:
- crowdin
env:
QT_VERSION: 6.6.3
QT_MODULES: qtmultimedia qtimageformats qtnetworkauth qtshadertools
IS_RELEASE: ${{ startsWith(github.ref, 'refs/tags/v') }}
IS_NIGHTLY: ${{ !startsWith(github.ref, 'refs/tags/v') }}
CMAKE_BUILD_PARALLEL_LEVEL: 2
QSCINTILLA_VERSION: 2.14.1
QSCINTILLA_DIR: QScintilla_src-2.14.1
ANDROID_NDK_VERSION: 25.1.8937393
jobs:
# Gatekeeper job to skip build for Crowdin PRs
gatekeeper:
name: Gatekeeper
if: startsWith(github.head_ref, 'crowdin') == false
runs-on: ubuntu-latest
steps:
- run: echo "OK"
uncrustify:
name: Uncrustify
runs-on: ubuntu-latest
needs: gatekeeper
env:
UNCRUSTIFY_COMMIT: 8edb7262e855c4271e9e5fc26af93861103e14fa
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Uncrustify cache
uses: actions/cache@v4
id: bin-cache
with:
path: bin
key: ${{ runner.os }}-uncrustify-${{ env.UNCRUSTIFY_COMMIT }}
- name: Build uncrustify
if: steps.bin-cache.outputs.cache-hit != 'true'
run: |
git clone https://github.com/uncrustify/uncrustify.git uncrustify_git
cd uncrustify_git
git checkout $UNCRUSTIFY_COMMIT
cd ..
mkdir uncrustify_build
cd uncrustify_build
cmake ../uncrustify_git
cmake --build .
mkdir $GITHUB_WORKSPACE/bin
cp uncrustify $GITHUB_WORKSPACE/bin
cd ..
- name: Add bin to path
run: echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH
- name: Print uncrustify version
run: uncrustify -v
- name: Run uncrustify
run: ./scripts/uncrustify.sh
- name: Check diff
run: git diff --exit-code
coverage:
name: Code coverage
runs-on: ubuntu-latest
needs: gatekeeper
env:
COVERAGE: 1
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install packages
run: |
sudo apt update
sudo apt install libpulse-dev lcov libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxkbcommon-x11-0
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
- name: Build
run: |
mkdir build
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Debug -DNIGHTLY=0 -DCOMMIT="$GITHUB_SHA" -DVERSION="9.9.9"
cmake --build . --config Debug --target sites
cmake --build . --config Debug
- name: Test
working-directory: src/lib
run: |
QT_QPA_PLATFORM=offscreen ../../build/lib/tests/lib-tests
QT_QPA_PLATFORM=offscreen ../../build/cli/tests/cli-tests
- name: Test GUI
working-directory: src/lib
run: |
QT_QPA_PLATFORM=offscreen ../../build/gui/tests/gui-tests
QT_QPA_PLATFORM=offscreen ../../build/crash-reporter/tests/crash-reporter-tests
- name: Test sites
working-directory: src/sites
run: |
npm ci
npm run test
- name: Capture coverage info
run: |
lcov --directory . --capture --output-file coverage.info
lcov --remove coverage.info '/usr/*' "${HOME}"'/.cache/*' --output-file coverage.info
lcov --list coverage.info
- name: Upload coverage results
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
version:
name: Version
runs-on: ubuntu-latest
needs: gatekeeper
outputs:
version: ${{ steps.get-version.outputs.version }}
release: ${{ steps.get-version.outputs.release }}
nightly: ${{ steps.get-version.outputs.nightly }}
steps:
- name: Get version
id: get-version
run: |
if [[ "$IS_RELEASE" == 'true' ]]; then echo "version=${GITHUB_REF##*/}" >> $GITHUB_OUTPUT ; fi
if [[ "$IS_RELEASE" != 'true' ]]; then echo "version=nightly" >> $GITHUB_OUTPUT ; fi
echo "release=$([ "$IS_RELEASE" = "true" ] && echo "1" || echo "0")" >> $GITHUB_OUTPUT
echo "nightly=$([ "$IS_NIGHTLY" = "true" ] && echo "1" || echo "0")" >> $GITHUB_OUTPUT
linux:
name: Linux
runs-on: ubuntu-20.04
needs: version
env:
GRABBER_VERSION: ${{ needs.version.outputs.version }}
GRABBER_IS_NIGHTLY: ${{ needs.version.outputs.nightly }}
LINUXDEPLOYQT_VERSION: continuous
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install dependencies
run: |
sudo apt update
sudo apt install libpulse-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-cursor0 libxkbcommon-x11-0 libgstreamer-plugins-base1.0-0 zsync xvfb
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
- name: Vendor cache
uses: actions/cache@v4
id: vendor-cache
with:
path: vendor
key: ${{ runner.os }}-vendor-${{ hashFiles('.github/workflows/build.yml') }}
- name: Create vendor dir
if: steps.vendor-cache.outputs.cache-hit != 'true'
run: mkdir vendor
- name: Build QScintilla
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
run: |
curl -Lo "QScintilla.zip" "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${QSCINTILLA_VERSION}/QScintilla_src-${QSCINTILLA_VERSION}.zip"
7z x "QScintilla.zip" -y
rm "QScintilla.zip"
cd "${QSCINTILLA_DIR}/src"
qmake qscintilla.pro
make
- name: Install QScintilla
working-directory: vendor
run: |
cd "${QSCINTILLA_DIR}/src"
make install
- name: Download linuxdeployqt
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
run: |
curl -Lo "linuxdeployqt.AppImage" "https://github.com/probonopd/linuxdeployqt/releases/download/${LINUXDEPLOYQT_VERSION}/linuxdeployqt-${LINUXDEPLOYQT_VERSION}-x86_64.AppImage"
chmod a+x linuxdeployqt.AppImage
# This driver causes an issue in linuxdeployqt because Mimer SQL is not installed but the plugin depends on it
- name: Delete unnecessary SQL driver
run: |
rm $Qt6_DIR/plugins/sqldrivers/libqsqlmimer.so
rm $Qt6_DIR/lib/cmake/Qt6Sql/Qt6QMimerSQLDriverPlugin*.cmake
- name: Build
run: |
mkdir build
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNIGHTLY=$GRABBER_IS_NIGHTLY -DCOMMIT="$GITHUB_SHA" -DVERSION="$GRABBER_VERSION"
cmake --build . --config Release --target sites
cmake --build . --config Release
- name: Test
working-directory: src/lib
run: |
QT_QPA_PLATFORM=offscreen ../../build/lib/tests/lib-tests
QT_QPA_PLATFORM=offscreen ../../build/cli/tests/cli-tests
- name: Test GUI
working-directory: src/lib
run: |
QT_QPA_PLATFORM=offscreen ../../build/gui/tests/gui-tests
QT_QPA_PLATFORM=offscreen ../../build/crash-reporter/tests/crash-reporter-tests
- name: Generate AppImage
run: |
./scripts/package-appimage.sh
mv Grabber_*-x86_64.AppImage Grabber-x86_64.AppImage
mv Grabber_*-x86_64.AppImage.zsync Grabber-x86_64.AppImage.zsync
- name: Upload AppImage
uses: actions/upload-artifact@v4
with:
name: Grabber-x86_64.AppImage
path: Grabber-x86_64.AppImage
if-no-files-found: error
- name: Upload AppImage update information
uses: actions/upload-artifact@v4
with:
name: Grabber-x86_64.AppImage.zsync
path: Grabber-x86_64.AppImage.zsync
if-no-files-found: error
- name: Generate archive
run: ./scripts/package-linux.sh
- name: Upload archive
uses: actions/upload-artifact@v4
with:
name: Grabber.tar.gz
path: Grabber.tar.gz
if-no-files-found: error
macos:
name: macOS
runs-on: macos-12
needs: version
env:
GRABBER_VERSION: ${{ needs.version.outputs.version }}
GRABBER_IS_NIGHTLY: ${{ needs.version.outputs.nightly }}
OPENSSL_ROOT_DIR: /usr/local/opt/openssl@3
CMAKE_BUILD_PARALLEL_LEVEL: 3
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
- name: Vendor cache
uses: actions/cache@v4
id: vendor-cache
with:
path: vendor
key: ${{ runner.os }}-vendor-${{ hashFiles('.github/workflows/build.yml') }}
- name: Create vendor dir
if: steps.vendor-cache.outputs.cache-hit != 'true'
run: mkdir vendor
- name: Build QScintilla
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
run: |
curl -Lo "QScintilla.zip" "https://www.riverbankcomputing.com/static/Downloads/QScintilla/${QSCINTILLA_VERSION}/QScintilla_src-${QSCINTILLA_VERSION}.zip"
7z x "QScintilla.zip" -y
rm "QScintilla.zip"
cd "${QSCINTILLA_DIR}/src"
qmake qscintilla.pro
make
- name: Install QScintilla
working-directory: vendor
run: |
cd "${QSCINTILLA_DIR}/src"
make install
- name: Build
run: |
mkdir build
cd build
cmake ../src -DCMAKE_BUILD_TYPE=Release -DNIGHTLY=$GRABBER_IS_NIGHTLY -DCOMMIT="$GITHUB_SHA" -DVERSION="$GRABBER_VERSION"
cmake --build . --config Release --target sites
cmake --build . --config Release
- name: Test
working-directory: src/lib
run: |
../../build/lib/tests/lib-tests
../../build/cli/tests/cli-tests
- name: Test GUI
working-directory: src/lib
run: |
../../build/gui/tests/gui-tests
../../build/crash-reporter/tests/crash-reporter-tests
- name: Generate package
run: ./scripts/package-mac.sh
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: Grabber.dmg
path: Grabber.dmg
if-no-files-found: error
windows:
name: Windows
runs-on: windows-2019
needs: version
env:
GRABBER_VERSION: ${{ needs.version.outputs.version }}
GRABBER_IS_NIGHTLY: ${{ needs.version.outputs.nightly }}
MYSQL_DRIVER_URL: https://github.com/thecodemonkey86/qt_mysql_driver/files/14757676/qsqlmysql.dll_Qt_SQL_driver_6.6.3_MSVC2019_64-bit.zip
OPENSSL_ROOT_DIR: ${{ github.workspace }}\vendor\OpenSSL
MYSQL_DRIVER_DIR: ${{ github.workspace }}\vendor\MySQL_driver
VCINSTALLDIR: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC
steps:
- name: Set environment
shell: bash
run: echo "BUILD_TYPE=$([ "$GRABBER_IS_NIGHTLY" = "1" ] && echo "Release" || echo "RelWithDebInfo")" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
- name: Vendor cache
uses: actions/cache@v4
id: vendor-cache
with:
path: vendor
key: ${{ runner.os }}-vendor-${{ hashFiles('.github/workflows/build.yml') }}
- name: Create vendor dirs
if: steps.vendor-cache.outputs.cache-hit != 'true'
shell: cmd
run: mkdir vendor
- name: Build QScintilla
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
shell: cmd
run: |
curl -Lo "QScintilla.zip" "https://www.riverbankcomputing.com/static/Downloads/QScintilla/%QSCINTILLA_VERSION%/QScintilla_src-%QSCINTILLA_VERSION%.zip"
7z x "QScintilla.zip" -y
rm "QScintilla.zip"
cd "%QSCINTILLA_DIR%\src"
call "%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" x64
qmake qscintilla.pro
nmake
- name: Install QScintilla
working-directory: vendor
shell: cmd
run: |
cd "%QSCINTILLA_DIR%\src"
call "%VCINSTALLDIR%\Auxiliary\Build\vcvarsall.bat" x64
nmake install
- name: Install OpenSSL
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
shell: cmd
run: |
curl -Lo OpenSSL.exe "https://github.com/Bionus/imgbrd-grabber/releases/download/sources-master/Win64OpenSSL-3_1_4.exe" --fail
OpenSSL.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- /DIR="%OPENSSL_ROOT_DIR%"
rm OpenSSL.exe
- name: Download MySQL driver
if: steps.vendor-cache.outputs.cache-hit != 'true'
working-directory: vendor
shell: cmd
run: |
curl -Lo "mysql_driver.zip" "%MYSQL_DRIVER_URL%"
7z x "mysql_driver.zip" -y -o"%MYSQL_DRIVER_DIR%"
rm "mysql_driver.zip"
- name: Build
shell: cmd
run: |
mkdir build
cd build
cmake ..\src -G "Visual Studio 16 2019" -A "x64" ^
-DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
-DCMAKE_SYSTEM_VERSION=10.0.18362.0 ^
-DNIGHTLY=%GRABBER_IS_NIGHTLY% ^
-DCOMMIT="%GITHUB_SHA%" ^
-DVERSION="%GRABBER_VERSION%" ^
-DVERSION_PLATFORM="x64"
cmake --build . --config %BUILD_TYPE% --target sites
cmake --build . --config %BUILD_TYPE%
- name: Test
shell: cmd
working-directory: src/lib
run: |
..\..\build\lib\tests\%BUILD_TYPE%\lib-tests.exe
..\..\build\cli\tests\%BUILD_TYPE%\cli-tests.exe
env:
QTDIR: ${{ env.Qt6_Dir }}
QT_PLUGIN_PATH: ${{ env.Qt6_Dir }}\plugins
- name: Generate installer
shell: cmd
run: |
copy /Y "%MYSQL_DRIVER_DIR%\sqldrivers\*.dll" "%Qt6_Dir%\plugins\sqldrivers"
iscc /Q ^
/DMyAppVersion="%GRABBER_VERSION%" ^
/DPlatformName="x64" ^
/DQtDir="%Qt6_Dir%\bin" ^
/DOpenSSLDir="%OPENSSL_ROOT_DIR%" ^
/DMySQLDir="%MYSQL_DRIVER_DIR%" ^
scripts\windows-setup\setup.iss
mv scripts/windows-setup/Grabber_*.exe "Grabber_x64.exe
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: Grabber_x64.exe
path: Grabber_x64.exe
if-no-files-found: error
- name: Generate package
shell: cmd
run: scripts\package-windows.bat && mv Grabber.zip Grabber_x64.zip
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: Grabber_x64.zip
path: Grabber_x64.zip
if-no-files-found: error
- name: Generate symbols ZIP
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/v') }}
shell: cmd
run: 7z a "Grabber_x64_symbols.zip" ".\build\gui\Grabber.pdb" ".\build\cli\Grabber-cli.pdb"
- name: Upload symbols
uses: actions/upload-artifact@v4
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/v') }}
with:
name: Grabber_x64_symbols.zip
path: Grabber_x64_symbols.zip
if-no-files-found: error
android:
name: Android
runs-on: ubuntu-latest
needs: version
env:
GRABBER_VERSION: ${{ needs.version.outputs.version }}
GRABBER_IS_NIGHTLY: ${{ needs.version.outputs.nightly }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install packages
run: |
sudo apt update
sudo apt install libpulse-dev
- name: Install Qt (host)
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
target: desktop
arch: gcc_64
- name: Install Qt (android)
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
target: android
arch: android_armv7
- name: Install Qt (android ARM64)
uses: jurplel/install-qt-action@v3
with:
cache: true
version: ${{ env.QT_VERSION }}
modules: ${{ env.QT_MODULES }}
target: android
arch: android_arm64_v8a
- name: Install Android platform and build tools
run: echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "platforms;android-33" "platform-tools" "build-tools;33.0.0"
- name: Install Android NDK 25
run: echo "y" | ${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager "ndk;${ANDROID_NDK_VERSION}"
- name: Download Android OpenSSL libraries
working-directory: src/cmake
run: git clone https://github.com/KDAB/android_openssl.git
- name: Restore keystore file
run: echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 --decode > release.jks
- name: Build
env:
QT_ANDROID_KEYSTORE_PATH: ${{ github.workspace }}/release.jks
QT_ANDROID_KEYSTORE_ALIAS: release
QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
Qt6_DIR_HOST: ${{ env.Qt6_DIR }}/../gcc_64
Qt6_DIR_V7: ${{ env.Qt6_DIR }}/../android_armv7
Qt6_DIR_V8: ${{ env.Qt6_DIR }}/../android_arm64_v8a
run: |
mkdir build
cd build
export Qt6_DIR=Qt6_DIR_V7
export ANDROID_SDK_ROOT=$ANDROID_HOME
export ANDROID_NDK_ROOT="${ANDROID_HOME}/ndk/${ANDROID_NDK_VERSION}"
cmake ../src -DCMAKE_BUILD_TYPE=Release -DNIGHTLY=$GRABBER_IS_NIGHTLY -DCOMMIT="$GITHUB_SHA" -DVERSION="$GRABBER_VERSION" \
-DANDROID_ABI:STRING=armeabi-v7a \
-DQT_ANDROID_ABIS:STRING="armeabi-v7a;arm64-v8a" \
-DQT_PATH_ANDROID_ABI_armeabi-v7a:PATH=$Qt6_DIR_V7 \
-DQT_PATH_ANDROID_ABI_arm64-v8a:PATH=$Qt6_DIR_V8 \
-DANDROID_NATIVE_API_LEVEL:STRING=21 \
-DANDROID_NDK:PATH=$ANDROID_NDK_ROOT \
-DANDROID_SDK:PATH=$ANDROID_HOME \
-DANDROID_STL:STRING=c++_shared \
-DQT_HOST_PATH:STRING=$Qt6_DIR_HOST \
-DQT_HOST_PATH_CMAKE_DIR:STRING=$Qt6_DIR_HOST/lib/cmake \
-DCMAKE_CXX_COMPILER:STRING=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ \
-DCMAKE_C_COMPILER:STRING=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin/clang \
-DCMAKE_FIND_ROOT_PATH:STRING=$Qt6_DIR_V7 \
-DCMAKE_PREFIX_PATH:STRING=$Qt6_DIR_V7 \
-DCMAKE_TOOLCHAIN_FILE:PATH=$Qt6_DIR_V7/lib/cmake/Qt6/qt.toolchain.cmake \
-DQT_DEBUG_FIND_PACKAGE=ON \
-DQT_QMAKE_EXECUTABLE:STRING=$Qt6_DIR_V7/bin/qmake
cmake --build . --config Release --target sites
cmake --build . --config Release --target gui-qml_make_apk
- name: Generate package
run: |
mv build/gui-qml/android-build/build/outputs/apk/debug/android-build-debug.apk Grabber.apk 2> /dev/null || true
mv build/gui-qml/android-build/build/outputs/apk/release/android-build-release-signed.apk Grabber.apk 2> /dev/null || true
- name: Upload package
uses: actions/upload-artifact@v4
with:
name: Grabber.apk
path: Grabber.apk
if-no-files-found: error
github:
name: Upload to GitHub releases
runs-on: ubuntu-latest
needs: [version, linux, macos, windows, android]
if: github.repository == 'Bionus/imgbrd-grabber' && github.event_name == 'push' && (needs.version.outputs.release == '1' || github.ref == 'refs/heads/develop')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ needs.version.outputs.version }}
steps:
- name: Download artifact (Linux AppImage)
uses: actions/download-artifact@v4
with:
name: Grabber-x86_64.AppImage
- name: Download artifact (Linux AppImage update information)
uses: actions/download-artifact@v4
with:
name: Grabber-x86_64.AppImage.zsync
- name: Download artifact (Linux archive)
uses: actions/download-artifact@v4
with:
name: Grabber.tar.gz
- name: Download artifact (macOS)
uses: actions/download-artifact@v4
with:
name: Grabber.dmg
- name: Download artifact (Windows 64-bit installer)
uses: actions/download-artifact@v4
with:
name: Grabber_x64.exe
- name: Download artifact (Windows 64-bit archive)
uses: actions/download-artifact@v4
with:
name: Grabber_x64.zip
- name: Download artifact (Windows 64-bit symbols)
uses: actions/download-artifact@v4
if: needs.version.outputs.release == '1'
with:
name: Grabber_x64_symbols.zip
- name: Download artifact (Android)
uses: actions/download-artifact@v4
with:
name: Grabber.apk
- name: Rename artifacts
run: |
mv Grabber-x86_64.AppImage Grabber_${VERSION}-x86_64.AppImage
mv Grabber-x86_64.AppImage.zsync Grabber_${VERSION}-x86_64.AppImage.zsync
mv Grabber.tar.gz Grabber_${VERSION}.tar.gz
mv Grabber.dmg Grabber_${VERSION}.dmg
mv Grabber_x64.exe Grabber_${VERSION}_x64.exe
mv Grabber_x64.zip Grabber_${VERSION}_x64.zip
mv Grabber.apk Grabber_${VERSION}.apk
- name: Rename symbols artifacts
if: needs.version.outputs.release == '1'
run: |
mv Grabber_x64_symbols.zip Grabber_${VERSION}_x64_symbols.zip
- name: Get date for Nightly body
id: date
if: needs.version.outputs.nightly == '1'
run: echo "date=$(date +'%Y-%m-%d %H:%M:%S %Z')" >> $GITHUB_OUTPUT
- name: Nightly
uses: ncipollo/release-action@v1
if: needs.version.outputs.nightly == '1'
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: nightly
name: Nightly
allowUpdates: true
draft: false
prerelease: true
artifacts: Grabber_*
body: |
Nightly automated builds from the develop branch.
Automatically uploaded by GitHub actions, **use at your own risk**!
**Head:** ${{ github.sha }}
**Date:** ${{ steps.date.outputs.date }}
- name: Release
uses: ncipollo/release-action@v1
if: needs.version.outputs.release == '1'
with:
token: ${{ secrets.GITHUB_TOKEN }}
allowUpdates: true
draft: true
artifacts: Grabber_*