hyperion.ng/.github/workflows/push-master.yml
brindosch 510bb903ae
Windows compilation support (#738)
* Disable AVAHI

* Replace SysInfo backport with Qt SysInfo

* Update vscode config

* Update LedDevices

* Update Logger

* Update hyperiond

* Update hyperion-remote

* Exclude avahi

* Empty definition for Process

* PythonInit path broken

* Exclude PiBlaster and link ws2_32

* more avahi

* resolve ui bug

* Update Compile howto

* JsonAPI QtGrabber missing

* fix error

* ssize_t replacement

* Nope, doesn't work

* Adjust compile description and verify winSDK

* Update ci script

* Update ci script

* Update ci

* Update ci script

* update Logger

* Update PythonInit

* added Azure & GitHub Actions, Logger, PythonInit

* resolve merge conflicts

* revert ssize_t in FadeCandy

* look at registry for QT5 & use find_package(Python) if cmake >= 3.12

* second try

* another try

* and yet another test

* qt5 registry search undone

* Package creation test

* finished package creation. only fine tuning is required :-)

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Dependencies for Windows finished

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* use 'add_definitions()' until CMake 3.12

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update .github/workflows/pull-request.yml

Co-Authored-By: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>

* Update cmake/Dependencies.cmake

Co-Authored-By: brindosch <edeltraud70@gmx.de>

* fix typo/ add VCINSTALLDIR var

* fix again

* Undo change again (Not working)

* fix QT grabber

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* first NSIS test

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update NSIS package

* surprise :-)

Signed-off-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>

* Update NSIS package

* fix: NSIS .bmps

* Add nsis templates

* Force windows gui app

* fix: QSysInfo required Qt5.6, now it's 5.4 again

* Update: Remove platform component and adjust package name

* Add macOS as system name

* Update docs

* fix: Allow gh actions ci also for forks with branches

* Add ReadMe docs, mention windows, add vscode linux debug config

* fix: readme visual

* reduce/hide banner/copyright/log message

Infos here: https://docs.microsoft.com/de-de/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2019#switches

* Fix PythonInit

* vscode: Add runner task

* fix(vscode): compiler path gcc ver independent

* fix azure

* vscode: add windows run tasks

* move process detection

* main: add windows process detection

* Azure file shredder

* Update docs

Co-authored-by: Paulchen Panther <16664240+Paulchen-Panther@users.noreply.github.com>
Co-authored-by: Paulchen-Panther <Paulchen-Panter@protonmail.com>
2020-05-12 19:51:19 +02:00

203 lines
5.1 KiB
YAML

name: Hyperion CI Build
on:
push:
branches-ignore:
- 'gh-pages'
- 'docker-ci'
tags:
- '*'
jobs:
######################
###### Linux #########
######################
Linux:
name: ${{ matrix.dockerName }}
runs-on: ubuntu-latest
strategy:
matrix:
dockerTag: [ amd64, armv6hf, armv7hf, aarch64 ]
include:
- dockerTag: amd64
dockerName: Debian Stretch (AMD64)
platform: x11
- dockerTag: armv6hf
dockerName: Debian Stretch (Raspberry Pi v1 & ZERO)
platform: rpi
- dockerTag: armv7hf
dockerName: Debian Stretch (Raspberry Pi 2 & 3)
platform: rpi
- dockerTag: aarch64
dockerName: Debian Stretch (Generic AARCH64)
platform: amlogic
steps:
- uses: actions/checkout@v1
with:
submodules: true
# build process
- name: Build packages
env:
DOCKER_TAG: ${{ matrix.dockerTag }}
DOCKER_NAME: ${{ matrix.dockerName }}
PLATFORM: ${{ matrix.platform }}
shell: bash
run: ./.ci/ci_build.sh
# upload artifacts (only on tagged commit)
- name: Upload artifacts
if: startsWith(github.event.ref, 'refs/tags')
uses: actions/upload-artifact@v2
with:
path: deploy/Hyperion-*
######################
###### macOS #########
######################
macOS:
name: macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
with:
submodules: true
# install dependencies
- name: Install dependencies
shell: bash
run: ./.ci/ci_install.sh
# build process
- name: Build packages
env:
PLATFORM: osx
shell: bash
run: ./.ci/ci_build.sh
# upload artifacts (only on tagged commit)
- name: Upload artifacts
if: startsWith(github.event.ref, 'refs/tags')
uses: actions/upload-artifact@v2
with:
path: build/Hyperion-*
######################
###### Windows #######
######################
windows:
name: Windows
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v1
with:
submodules: true
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.14.1'
target: 'desktop'
arch: 'win64_msvc2017_64'
- name: Install Python
uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Set up x64 build architecture environment
shell: cmd
run: call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
# Build packages
- name: Build packages
env:
PLATFORM: windows
shell: bash
run: ./.ci/ci_build.sh
######################
#### Documentation ###
######################
Docs:
name: Documentation
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v2
# Install dependencies
- name: Setup node 12
uses: actions/setup-node@v1
with:
node-version: '12'
# Build Docs
- name: Build docs
run: |
cd docs
npm install -g yarn
yarn install
yarn docs:build
# Deploy to gh-pages (only on tagged commit)
- name: Deploy to gh-pages
if: startsWith(github.event.ref, 'refs/tags')
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/dist
cname: docs.hyperion-project.org
################################
###### Publish Releases ########
################################
publish:
name: Publish Releases
if: startsWith(github.event.ref, 'refs/tags')
needs: [Linux, macOS, Docs]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# generate environment variables
- name: Generate environment variables from version and tag
run: |
echo ::set-env name=TAG::${GITHUB_REF/refs\/tags\//}
echo ::set-env name=VERSION::$(tr -d '\n' < version)
echo ::set-env name=preRelease::false
# If version contains alpha or beta, mark draft release as pre-release
- name: Mark release as pre-release
if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta')
run: echo ::set-env name=preRelease::true
# Download artifacts from previous build process
- name: Download artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
# create draft release and upload artifacts
- name: Create draft release
uses: softprops/action-gh-release@v1
with:
name: Hyperion ${{ env.VERSION }}
tag_name: ${{ env.TAG }}
files: "artifacts/**"
draft: true
prerelease: ${{ env.preRelease }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}