name: Hyperion PR Build on: pull_request: branches: - master # Cancel running actions when a new action on the same PR is started concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: ###################### ###### Linux ######### ###################### Linux: name: 🐧 ${{ matrix.dockerName }} runs-on: ubuntu-latest strategy: matrix: dockerImage: [ x86_64, armv6l, armv7l, aarch64 ] include: - dockerImage: x86_64 dockerName: Debian Buster (x86_64) platform: x11 - dockerImage: armv6l dockerName: Debian Buster (Raspberry Pi v1 & ZERO) platform: rpi - dockerImage: armv7l dockerName: Debian Buster (Raspberry Pi 2 & 3) platform: rpi - dockerImage: aarch64 dockerName: Debian Buster (Generic AARCH64) platform: amlogic steps: - name: ⬇ Checkout uses: actions/checkout@v4 with: submodules: recursive - name: 🔧 Prepare shell: bash run: | echo '::group::Append PR number to version' tr -d '\n' < .version > temp && mv temp .version echo -n "+PR${{ github.event.pull_request.number }}" >> .version echo '::endgroup::' - name: 👷 Build env: DOCKER_IMAGE: ${{ matrix.dockerImage }} DOCKER_TAG: buster DOCKER_NAME: ${{ matrix.dockerName }} PLATFORM: ${{ matrix.platform }} shell: bash run: | echo '::group::Build packages' ./.ci/ci_build.sh echo '::endgroup::' echo '::group::Collecting deployable artifacts' mkdir -p ${{ matrix.dockerImage }} mv deploy/*.tar.gz ${{ matrix.dockerImage }} echo '::endgroup::' - name: 📦 Upload uses: actions/upload-artifact@v3 with: name: ${{ matrix.dockerImage }} path: ${{ matrix.dockerImage }} ###################### ###### macOS ######### ###################### macOS: name: 🍏 macOS runs-on: macos-latest steps: - name: ⬇ Checkout uses: actions/checkout@v4 with: submodules: recursive - name: 🔧 Prepare shell: bash run: | echo '::group::Append PR number to version' tr -d '\n' < .version > temp && mv temp .version echo -n "+PR${{ github.event.pull_request.number }}" >> .version echo '::endgroup::' echo '::group::Install dependencies' ./.ci/ci_install.sh echo '::endgroup::' - name: 👷 Build env: PLATFORM: osx shell: bash run: | echo '::group::Build packages' ./.ci/ci_build.sh echo '::endgroup::' echo '::group::Collecting deployable artifacts' mkdir -p macOS mv build/*.dmg macOS echo '::endgroup::' - name: 📦 Upload uses: actions/upload-artifact@v3 with: name: macOS path: macOS ###################### ###### Windows ####### ###################### windows: name: 🪟 Windows runs-on: windows-2022 env: VCINSTALLDIR: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC' QT_VERSION: 5.15.2 steps: - name: ⬇ Checkout uses: actions/checkout@v4 with: submodules: recursive - name: 🔧 Prepare shell: bash run: | echo '::group::Append PR number to version' tr -d '\n' < .version > temp && mv temp .version echo -n "+PR${{ github.event.pull_request.number }}" >> .version echo '::endgroup::' - name: 💾 Cache/Restore uses: actions/cache@v3 with: path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey key: ${{ runner.os }}-chocolatey - name: 📥 Install OpenSSL, DirectX SDK, libjpeg-turbo shell: powershell run: | choco install --no-progress openssl --version=1.1.1.2100 -y choco install --no-progress directx-sdk -y Invoke-WebRequest https://netcologne.dl.sourceforge.net/project/libjpeg-turbo/2.0.6/libjpeg-turbo-2.0.6-vc64.exe -OutFile libjpeg-turbo.exe -UserAgent NativeHost .\libjpeg-turbo /S - name: 📥 Install Qt uses: jurplel/install-qt-action@v3 with: version: ${{env.QT_VERSION}} target: 'desktop' arch: 'win64_msvc2019_64' cache: 'true' cache-key-prefix: 'cache-qt-windows' - name: 🛠️ Setup MSVC shell: cmd run: call "${{env.VCINSTALLDIR}}\Auxiliary\Build\vcvars64.bat" - name: 👷 Build env: PLATFORM: windows shell: bash run: | echo '::group::Build packages' ./.ci/ci_build.sh echo '::endgroup::' echo '::group::Collecting deployable artifacts' mkdir -p windows mv build/*.exe windows echo '::endgroup::' - name: 📦 Upload uses: actions/upload-artifact@v3 with: name: windows path: windows