Skip to content

Upgrade github actions to v4 #7

Upgrade github actions to v4

Upgrade github actions to v4 #7

Workflow file for this run

name: Build Plugin Windows/Linux
on:
push:
tags:
- v1.**
pull_request:
branches: [ "master" ]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
#### x86 WINDOWS build ####
build-win32:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
host: 'windows'
target: 'desktop'
arch: 'win32_msvc2019'
install-deps: 'true'
cache: 'true'
cache-key-prefix: 'install-qt-action-x86'
- name: Configure CMake
run: >
cmake -G "Visual Studio 17 2022" -A Win32
-B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
-DRPSB_MAKE_PLUGIN_FILE=OFF
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target INSTALL
- name: Archive raw files
uses: actions/upload-artifact@v4
with:
name: windows-x86
path: ${{github.workspace}}/install/
if-no-files-found: error
#### x64 WINDOWS build ####
build-win64:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
host: 'windows'
target: 'desktop'
arch: 'win64_msvc2019_64'
install-deps: 'true'
cache: 'true'
cache-key-prefix: 'install-qt-action'
- name: Configure CMake
run: >
cmake -G "Visual Studio 17 2022" -A x64
-B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
-DRPSB_MAKE_PLUGIN_FILE=OFF
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target INSTALL
- name: Archive raw files
uses: actions/upload-artifact@v4
with:
name: windows-x64
path: ${{github.workspace}}/install/
if-no-files-found: error
#### x64 LINUX build ####
build-linux64:
# The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
# You can convert this to a matrix build if you need cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: create submodule status file
run: git submodule status > submodule_status
- name: Restore ffmpeg cache
id: cache-ffmpeg
uses: actions/cache@v4
env:
cache-name: cache-ffmpeg-build
with:
path: ${{github.workspace}}/ffmpeg/lib_lin_x64
key: ${{runner.os}}-build-${{env.cache-name}}-${{hashFiles('submodule_status', 'ffmpeg/build-scripts/**')}}
- if: ${{ steps.cache-ffmpeg.outputs.cache-hit != 'true' }}
name: Build ffmpeg
run: |
git submodule init
git submodule update
sudo apt-get update
sudo apt-get install -y yasm
pushd ffmpeg/build-scripts
./build_ffmpeg.sh
popd
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: '5.15.2'
host: 'linux'
target: 'desktop'
arch: 'gcc_64'
install-deps: 'true'
cache: 'true'
cache-key-prefix: 'install-qt-action-x64-linux'
- name: Configure CMake
run: >
cmake
-B ${{github.workspace}}/build
-DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
-DRPSB_MAKE_PLUGIN_FILE=OFF
- name: Build
# Build your program with the given configuration
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install
- name: Archive raw files
uses: actions/upload-artifact@v4
with:
name: linux-x64
path: ${{github.workspace}}/install/
if-no-files-found: error
#### PACKAGE JOB ####
package:
runs-on: windows-latest
needs:
- build-win32
- build-win64
- build-linux64
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download Windows x86 artifacts
uses: actions/download-artifact@v4
with:
name: windows-x86
path: ${{github.workspace}}/install
- name: Download Windows x64 artifacts
uses: actions/download-artifact@v4
with:
name: windows-x64
path: ${{github.workspace}}/install
- name: Download Linux x64 artifacts
uses: actions/download-artifact@v4
with:
name: linux-x64
path: ${{github.workspace}}/install
- name: package final plugin file
run: cmake -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install -DRPSB_PLUGINFILE_OUTPUT_DIR=${{github.workspace}}/release -P create-pluginfile.cmake
- name: Archive
uses: actions/upload-artifact@v4
with:
name: plugin-windows-linux
path: ${{github.workspace}}/release/*.ts3_plugin
if-no-files-found: error
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: release/*.ts3_plugin
fail_on_unmatched_files: true
generate_release_notes: true