From 1d12d6acee22cdc0e251bddaa8df763f397f8cf5 Mon Sep 17 00:00:00 2001 From: ahrm Date: Sun, 3 Apr 2022 17:47:21 +0430 Subject: [PATCH] Add preview release gihub workflow --- .github/workflows/preview_release.yml | 282 ++++++++++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 .github/workflows/preview_release.yml diff --git a/.github/workflows/preview_release.yml b/.github/workflows/preview_release.yml new file mode 100644 index 000000000..d50797a33 --- /dev/null +++ b/.github/workflows/preview_release.yml @@ -0,0 +1,282 @@ + +name: Rolling Release + +on: + push: + tags: + - "p*" + +jobs: + upload-release: + runs-on: ubuntu-18.04 + needs: [build-mac, build-linux, build-windows, build-linux-portable, build-windows-portable] + + 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.run_id }} + release_name: Release ${{ github.run_id }} + draft: false + prerelease: true + - name: download artifacts + uses: actions/download-artifact@v1 + 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: ./uploads/sioyek-release-mac.zip + asset_name: sioyek-release-mac.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: ./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: ./uploads/sioyek-release-windows.zip + asset_name: sioyek-release-windows.zip + asset_content_type: application/zip + - name: upload linux-portable + id: upload-linux-portable + 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: ./uploads/sioyek-release-linux-portable.zip + asset_name: sioyek-release-linux-portable.zip + asset_content_type: application/zip + - name: upload windows-portable + id: upload-windows-portable + 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: ./uploads/sioyek-release-windows-portable.zip + asset_name: sioyek-release-windows-portable.zip + asset_content_type: application/zip + + + build-linux: + + runs-on: ubuntu-18.04 + + steps: + - name: Cache apt-get packages + uses: actions/cache@v2 + 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: Set up GCC + uses: egor-tensin/setup-gcc@v1 + with: + version: 9 + platform: x64 + + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + + - name: Install libharfbuzz + run: sudo apt install libharfbuzz-dev + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '5.14.2' + + - name: Build + working-directory: ${{env.GITHUB_WORKSPACE}} + + run: MAKE_PARALLEL=$(nproc) ./build_and_release.sh + env: + CC: gcc-9 + CXX: g++-9 + - name: upload linux artifact + uses: actions/upload-artifact@v1 + with: + name: 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-linux-portable: + runs-on: ubuntu-18.04 + + steps: + - name: Cache apt-get packages + uses: actions/cache@v2 + env: + cache-name: cache-deb-packages + with: + path: /var/cache/apt/archives + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }}-portable + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Set up GCC + uses: egor-tensin/setup-gcc@v1 + with: + version: 9 + platform: x64 + + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + + - name: Install libharfbuzz + run: sudo apt install libharfbuzz-dev + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '5.14.2' + + - name: Build + working-directory: ${{env.GITHUB_WORKSPACE}} + + run: MAKE_PARALLEL=$(nproc) ./build_and_release.sh portable + env: + CC: gcc-9 + CXX: g++-9 + - name: upload linux artifact + uses: actions/upload-artifact@v1 + with: + name: uploads + path: sioyek-release-linux-portable.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@v2 + with: + submodules: 'recursive' + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + - 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@v1 + with: + name: uploads + path: sioyek-release-windows.zip + + build-windows-portable: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + + - 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 portable + + - name: upload windows artifact + uses: actions/upload-artifact@v1 + with: + name: uploads + path: sioyek-release-windows-portable.zip + + build-mac: + + runs-on: macos-10.15 + + steps: + + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + + - name: Cache Homebrew packages + uses: actions/cache@v2 + env: + cache-name: homebrew + with: + path: ~/Library/Caches/Homebrew + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Install dependencies + run: brew install freeglut mesa harfbuzz + + - name: Install Qt + uses: jurplel/install-qt-action@v2 + with: + version: '5.14.2' + + - 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@v1 + with: + name: uploads + path: sioyek-release-mac.zip