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.15.0' target: 'desktop' arch: 'win64_msvc2019_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 }} # Dispatch event to build new HyperBian image - name: Dispatch HyperBian build uses: peter-evans/repository-dispatch@v1 if: ${{ github.repository_owner == 'hyperion-project'}} with: repository: hyperion-project/HyperBian token: ${{ secrets.HYPERION_BOT_TOKEN }} event-type: hyperion_push