These invocations will all cause bugs when pwd returns something that can be interpreted by bash, the most common case being a folder with whitespaces in its name. In other words these can be triggered by calling the scripts from any folder that contains whitespaces. More info on this specific finding by shellcheck: https://github.com/koalaman/shellcheck/wiki/SC2046
109 lines
3.4 KiB
YAML
109 lines
3.4 KiB
YAML
name: Windows Companion
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- '2.5'
|
|
- '2.6'
|
|
- 'main'
|
|
tags:
|
|
- v*
|
|
paths:
|
|
- '.github/workflows/win_cpn.yml'
|
|
- 'companion/**'
|
|
- 'tools/build-companion-nightly.sh'
|
|
|
|
pull_request:
|
|
branches:
|
|
- '2.5'
|
|
- '2.6'
|
|
- 'main'
|
|
paths:
|
|
- '.github/workflows/win_cpn.yml'
|
|
- 'companion/**'
|
|
- 'tools/build-companion-nightly.sh'
|
|
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
|
BUILD_TYPE: Release
|
|
CMAKE_GENERATOR: "MSYS Makefiles"
|
|
QT_VERSION: "5.12.9"
|
|
MINGW_VERSION: "win64_mingw73"
|
|
MINGW_PATH: "mingw73_64"
|
|
|
|
jobs:
|
|
build:
|
|
# 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
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
|
|
steps:
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: MINGW64
|
|
update: true
|
|
install: git make mingw-w64-x86_64-toolchain
|
|
|
|
- name: Install Dependencies
|
|
run: |
|
|
pacman -S --noconfirm mingw-w64-x86_64-cmake \
|
|
mingw-w64-x86_64-python-pip \
|
|
mingw-w64-x86_64-libjpeg-turbo \
|
|
mingw-w64-x86_64-zlib \
|
|
mingw-w64-x86_64-libtiff \
|
|
mingw-w64-x86_64-freetype \
|
|
mingw-w64-x86_64-lcms2 \
|
|
mingw-w64-x86_64-libwebp \
|
|
mingw-w64-x86_64-openjpeg2 \
|
|
mingw-w64-x86_64-libimagequant \
|
|
mingw-w64-x86_64-libraqm \
|
|
mingw-w64-x86_64-SDL \
|
|
mingw-w64-x86_64-clang \
|
|
mingw-w64-x86_64-nsis
|
|
pip install Pillow clang
|
|
|
|
- name: Cache Qt
|
|
id: cache-qt
|
|
uses: actions/cache@v1 # not v2!
|
|
with:
|
|
path: ../Qt
|
|
key: win64-QtCache
|
|
|
|
- name: Install Qt
|
|
uses: jurplel/install-qt-action@v2
|
|
with:
|
|
cached: ${{ steps.cache-qt.outputs.cache-hit }}
|
|
version: ${{ env.QT_VERSION }}
|
|
arch: ${{ env.MINGW_VERSION }}
|
|
|
|
- name: Check out the repo
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Build
|
|
working-directory: ${{github.workspace}}
|
|
# Execute the build. You can specify a specific target with "--target <NAME>"
|
|
run: |
|
|
mkdir output && \
|
|
CMAKE_PREFIX_PATH=$RUNNER_WORKSPACE/Qt/$QT_VERSION/$MINGW_PATH \
|
|
tools/build-companion-nightly.sh "$(pwd)" "$(pwd)/output/"
|
|
|
|
- name: Compose release filename
|
|
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
|
|
run: echo "artifact_name=edgetx-cpn-win-${GITHUB_REF##*/}" >> $GITHUB_ENV
|
|
|
|
- name: Archive production artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: "${{ env.artifact_name }}"
|
|
path: ${{github.workspace}}/output
|
|
retention-days: 15
|