Create release #109
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- 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 | |
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 --gpl | |
- 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 | |
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: "17" | |
- uses: android-actions/setup-android@v3 | |
with: | |
packages: "platforms;android-29" | |
- uses: nttld/setup-ndk@v1 | |
id: setup-ndk | |
with: | |
ndk-version: r26b | |
- 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: ilharp/sign-android-release@v1 | |
id: sign_apk | |
with: | |
releaseDir: build/alvr_client_android | |
signingKey: ${{ secrets.SIGNING_KEY }} | |
keyAlias: ${{ secrets.KEY_ALIAS }} | |
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} | |
keyPassword: ${{ secrets.KEY_PASSWORD }} | |
buildToolsVersion: 34.0.0 | |
- 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.signedFile }} | |
asset_name: alvr_client_android.apk | |
asset_content_type: application/vnd.android.package-archive |