Skip to content

Check loc.chapter to prevent oob error #223

Check loc.chapter to prevent oob error

Check loc.chapter to prevent oob error #223

name: Build Release
on:
push:
tags:
- "v*"
pull_request:
branches:
- "*"
workflow_dispatch:
jobs:
upload-release:
if: ${{ (github.event_name == 'workflow_dispatch') || (github.event_name != 'pull_request') }}
runs-on: ubuntu-20.04
needs: [build-mac, build-mac-arm, build-linux, build-windows]
steps:
- uses: actions/checkout@v1
- name: create release
id: create_release
uses: actions/create-release@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.sha }}
draft: false
prerelease: false
- name: download artifacts
uses: actions/download-artifact@v4
# with:
# name: uploads
- name: upload mac
id: upload-mac
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./mac-uploads/sioyek-release-mac.zip
asset_name: sioyek-release-mac.zip
asset_content_type: application/zip
- name: upload mac arm
id: upload-mac-arm
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./mac-arm-uploads/sioyek-release-mac-arm.zip
asset_name: sioyek-release-mac-arm.zip
asset_content_type: application/zip
- name: upload linux
id: upload-linux
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./linux-uploads/sioyek-release-linux.zip
asset_name: sioyek-release-linux.zip
asset_content_type: application/zip
- name: upload windows
id: upload-windows
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./windows-uploads/sioyek-release-windows.zip
asset_name: sioyek-release-windows.zip
asset_content_type: application/zip
build-linux:
runs-on: ubuntu-20.04
steps:
- name: Cache apt-get packages
uses: actions/cache@v4
env:
cache-name: cache-deb-packages
with:
path: /var/cache/apt/archives
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Install LinuxDeploy
uses: miurahr/install-linuxdeploy-action@v1
with:
plugins: qt appimage
- name: Set up GCC
uses: egor-tensin/setup-gcc@v1
with:
version: 9
platform: x64
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install dependencies
run: sudo apt install libharfbuzz-dev libxrandr-dev libxi-dev libglu1-mesa-dev fuse libxcb-cursor0 libspeechd2
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'all'
cache: true
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: MAKE_PARALLEL=$(nproc) ./linuxdeploy_build_and_release.sh
env:
CC: gcc-9
CXX: g++-9
- name: upload linux artifact
uses: actions/upload-artifact@v4
with:
name: linux-uploads
path: sioyek-release-linux.zip
- name: Workaround apt-get cache permission (https://github.com/actions/cache/issues/324)
run: |
export USER_NAME=$(whoami)
sudo chown -R $USER_NAME /var/cache/apt/archives
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'all'
cache: true
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Add msvc-dev-cmd
uses: ilammy/msvc-dev-cmd@v1
- name: Build Sioyek
working-directory: ${{env.GITHUB_WORKSPACE}}
run: .\build_windows.bat non_portable
- name: upload windows artifact
uses: actions/upload-artifact@v4
with:
name: windows-uploads
path: sioyek-release-windows.zip
build-mac:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Cache Homebrew packages
uses: actions/cache@v4
env:
cache-name: homebrew
with:
path: ~/Library/Caches/Homebrew
key: ${{ runner.os }}-intel-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-intel-build-${{ env.cache-name }}-
${{ runner.os }}-intel-build-
${{ runner.os }}-intel-
- name: Install dependencies
run: brew install freeglut mesa harfbuzz
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'all'
cache: true
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
chmod +x build_mac.sh
MAKE_PARALLEL=$(sysctl -n hw.logicalcpu) ./build_mac.sh
- name: upload mac artifact
uses: actions/upload-artifact@v4
with:
name: mac-uploads
path: sioyek-release-mac.zip
build-mac-arm:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Cache Homebrew packages
uses: actions/cache@v4
env:
cache-name: homebrew
with:
path: ~/Library/Caches/Homebrew
key: ${{ runner.os }}-arm-build-${{ env.cache-name }}-${{ github.sha }}
restore-keys: |
${{ runner.os }}-arm-build-${{ env.cache-name }}-
${{ runner.os }}-arm-build-
${{ runner.os }}-arm-
- name: Install dependencies
run: brew install freeglut mesa harfbuzz
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.2'
modules: 'all'
cache: true
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: |
chmod +x build_mac.sh
MAKE_PARALLEL=$(sysctl -n hw.logicalcpu) ./build_mac.sh
mv sioyek-release-mac.zip sioyek-release-mac-arm.zip
- name: upload mac artifact
uses: actions/upload-artifact@v4
with:
name: mac-arm-uploads
path: sioyek-release-mac-arm.zip