269 lines
9.4 KiB
YAML
269 lines
9.4 KiB
YAML
name: Create release
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Version"
|
|
required: false
|
|
default: ""
|
|
|
|
jobs:
|
|
prepare_release:
|
|
runs-on: windows-2019
|
|
outputs:
|
|
release_ref: ${{ steps.output_ref.outputs.release_ref }}
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
release_id: ${{ steps.create_release.outputs.id }}
|
|
steps:
|
|
- name: Configure git
|
|
run: git config --global core.autocrlf false
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
|
|
- name: Bump version
|
|
id: bump_version
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: |
|
|
$versionarg = "${{ github.event.inputs.version }}"
|
|
$versionarg = If ($versionarg.Length -gt 0) { "--version $versionarg" } else { "" }
|
|
$out = cargo xtask bump $versionarg.split()
|
|
echo $out
|
|
cargo update -p alvr_common
|
|
echo "::set-output name=version_tag::$(echo $out | sls -CaseSensitive -Pattern '^v.*$')"
|
|
|
|
- name: Push changes
|
|
uses: stefanzweifel/git-auto-commit-action@v4
|
|
with:
|
|
commit_message: "[Auto] Bump version"
|
|
|
|
- name: Output ref for later checkouts
|
|
id: output_ref
|
|
run: echo "::set-output name=release_ref::$(git rev-parse HEAD)"
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ steps.bump_version.outputs.version_tag }}
|
|
release_name: ALVR ${{ steps.bump_version.outputs.version_tag }}
|
|
draft: true
|
|
prerelease: false
|
|
commitish: ${{ steps.output_ref.outputs.release_ref }}
|
|
|
|
build_windows_streamer:
|
|
runs-on: windows-2019
|
|
needs: [prepare_release]
|
|
env:
|
|
# For bindgen to find libclang.dll, we need to give it the path to the Visual Studio package.
|
|
# This is specific to the GitHub windows-2019 runner.
|
|
LIBCLANG_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin'
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ needs.prepare_release.outputs.release_ref }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- uses: crazy-max/ghaction-chocolatey@v1
|
|
with:
|
|
args: install zip unzip pkgconfiglite wixtoolset
|
|
|
|
- name: Build and package ALVR
|
|
id: build
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: |
|
|
cargo xtask prepare-deps --platform windows --ci
|
|
cargo xtask package-streamer --gpl
|
|
$file = Get-ChildItem -Name .\build\*.exe | Select-Object -f 1
|
|
echo "::set-output name=exe_filename::$file"
|
|
|
|
- name: Upload Windows installer (exe)
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/${{ steps.build.outputs.exe_filename }}
|
|
asset_name: ${{ steps.build.outputs.exe_filename }}
|
|
asset_content_type: application/octet-stream
|
|
- name: Upload Windows installer (msi)
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/alvr_streamer_windows.msi
|
|
asset_name: alvr_streamer_windows.msi
|
|
asset_content_type: application/octet-stream
|
|
- name: Upload portable streamer for Windows
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/alvr_streamer_windows.zip
|
|
asset_name: alvr_streamer_windows.zip
|
|
asset_content_type: application/zip
|
|
|
|
build_linux_streamer:
|
|
runs-on: ubuntu-latest
|
|
needs: [prepare_release]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ needs.prepare_release.outputs.release_ref }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
override: true
|
|
|
|
- name: Build and install dependencies
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install libfuse2 build-essential pkg-config nasm libva-dev libdrm-dev libvulkan-dev libx264-dev libx265-dev cmake libasound2-dev libjack-jackd2-dev libxrandr-dev libunwind-dev libffmpeg-nvenc-dev nvidia-cuda-toolkit libgtk-3-dev
|
|
git clone https://github.com/FFmpeg/nv-codec-headers.git
|
|
cd nv-codec-headers/
|
|
sudo make install
|
|
cd ..
|
|
cp alvr/xtask/deb/cuda.pc /usr/share/pkgconfig
|
|
cargo xtask prepare-deps --platform linux
|
|
|
|
- name: Build and package ALVR (.tar.gz)
|
|
id: build
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: cargo xtask package-streamer
|
|
|
|
- name: Upload streamer for Linux
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/alvr_streamer_linux.tar.gz
|
|
asset_name: alvr_streamer_linux.tar.gz
|
|
asset_content_type: application/gzip
|
|
|
|
- name: Build and package ALVR portable (.AppImage)
|
|
id: build_portable
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: cargo xtask package-streamer --appimage --zsync
|
|
|
|
- name: Upload portable streamer for Linux
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/ALVR-x86_64.AppImage
|
|
asset_name: ALVR-x86_64.AppImage
|
|
asset_content_type: application/x-executable
|
|
- name: Upload portable streamer for Linux (zsync)
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ./build/ALVR-x86_64.AppImage.zsync
|
|
asset_name: ALVR-x86_64.AppImage.zsync
|
|
asset_content_type: application/octet-stream
|
|
|
|
build_flatpak_bundle:
|
|
runs-on: ubuntu-latest
|
|
needs: [prepare_release]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ needs.prepare_release.outputs.release_ref }}
|
|
|
|
- name: Build and install dependencies
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install flatpak flatpak-builder
|
|
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
|
|
- name: Build and package ALVR flatpak (.flatpak)
|
|
id: build_flatpak
|
|
run: |
|
|
sudo flatpak-builder --repo=.flatpak-repo --install-deps-from=flathub --force-clean --default-branch=stable --arch=x86_64 .flatpak-build-dir alvr/xtask/flatpak/com.valvesoftware.Steam.Utility.alvr.json
|
|
flatpak build-bundle .flatpak-repo com.valvesoftware.Steam.Utility.alvr.flatpak com.valvesoftware.Steam.Utility.alvr stable --runtime
|
|
|
|
- name: Upload flatpak streamer for Linux
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: com.valvesoftware.Steam.Utility.alvr.flatpak
|
|
asset_name: com.valvesoftware.Steam.Utility.alvr.flatpak
|
|
asset_content_type: application/octet-stream
|
|
|
|
build_android_client:
|
|
runs-on: ubuntu-latest
|
|
needs: [prepare_release]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
ref: ${{ needs.prepare_release.outputs.release_ref }}
|
|
- uses: actions-rs/toolchain@v1
|
|
with:
|
|
toolchain: stable
|
|
target: aarch64-linux-android
|
|
override: true
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
distribution: 'temurin'
|
|
java-version: '11'
|
|
- uses: nttld/setup-ndk@v1
|
|
id: setup-ndk
|
|
with:
|
|
ndk-version: r25c
|
|
|
|
- name: Build and package ALVR
|
|
id: build
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
|
|
run: |
|
|
cargo xtask prepare-deps --platform android --ci
|
|
cargo xtask package-client
|
|
|
|
- name: Sign APK
|
|
uses: r0adkll/sign-android-release@v1
|
|
id: sign_apk
|
|
with:
|
|
releaseDirectory: build/alvr_client_android
|
|
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
|
alias: ${{ secrets.KEY_ALIAS }}
|
|
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
keyPassword: ${{ secrets.KEY_PASSWORD }}
|
|
|
|
- name: Upload APK
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ needs.prepare_release.outputs.upload_url }}
|
|
asset_path: ${{steps.sign_apk.outputs.signedReleaseFile}}
|
|
asset_name: alvr_client_android.apk
|
|
asset_content_type: application/vnd.android.package-archive
|