Merge pull request #136 from Radiicall/activity-type-testing #138
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: Build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
ubuntu: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
default: true | |
override: true | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: x86_64-linux-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
x86_64-linux- | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --workspace --locked --release | |
- name: Rename binary | |
run: mv target/release/jellyfin-rpc target/release/jellyfin-rpc-x86_64-linux | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all-features --locked | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux | |
path: target/release/jellyfin-rpc-x86_64-linux | |
ubuntu-arm32: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: armv7-unknown-linux-gnueabihf | |
default: true | |
override: true | |
- name: Install ARM32 gcc | |
run: sudo apt install gcc-arm-linux-gnueabihf -y | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: arm32-linux-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
arm32-linux- | |
- name: Build for ARM32 Linux | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --target armv7-unknown-linux-gnueabihf --workspace --locked --release | |
- name: Rename binary | |
run: mv target/armv7-unknown-linux-gnueabihf/release/jellyfin-rpc target/armv7-unknown-linux-gnueabihf/release/jellyfin-rpc-arm32-linux | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-arm32 | |
path: target/armv7-unknown-linux-gnueabihf/release/jellyfin-rpc-arm32-linux | |
ubuntu-arm64: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: aarch64-unknown-linux-gnu | |
default: true | |
override: true | |
- name: Install ARM64 gcc | |
run: sudo apt install gcc-aarch64-linux-gnu -y | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: arm64-linux-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
arm64-linux- | |
- name: Build for ARM64 Linux | |
uses: actions-rs/cargo@v1 | |
with: | |
use-cross: true | |
command: build | |
args: --target aarch64-unknown-linux-gnu --workspace --locked --release | |
- name: Rename binary | |
run: mv target/aarch64-unknown-linux-gnu/release/jellyfin-rpc target/aarch64-unknown-linux-gnu/release/jellyfin-rpc-arm64-linux | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-arm64 | |
path: target/aarch64-unknown-linux-gnu/release/jellyfin-rpc-arm64-linux | |
windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
default: true | |
override: true | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: x86_64-windows-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
x86_64-windows- | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --workspace --locked --release | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all-features --locked | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows | |
path: target/release/jellyfin-rpc.exe | |
macos-x86_64: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: x86_64-apple-darwin | |
default: true | |
override: true | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: x86_64-macos-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
x86_64-macos- | |
- name: Build for x86_64 macOS | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --workspace --locked --release | |
- name: Rename binary | |
run: mv target/release/jellyfin-rpc target/release/jellyfin-rpc-x86_64-darwin | |
- name: Run cargo test | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all-features --locked | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos-x86_64 | |
path: target/release/jellyfin-rpc-x86_64-darwin | |
macos-arm64: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install latest rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: aarch64-apple-darwin | |
default: true | |
override: true | |
- name: Cache target folder | |
uses: actions/cache@v3 | |
env: | |
cache-name: target-folder | |
with: | |
path: target | |
key: arm64-macos-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: | | |
arm64-macos- | |
- name: Build for arm64 macOS | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --target aarch64-apple-darwin --workspace --locked --release | |
- name: Rename binary | |
run: mv target/aarch64-apple-darwin/release/jellyfin-rpc target/aarch64-apple-darwin/release/jellyfin-rpc-arm64-darwin | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos-arm64 | |
path: target/aarch64-apple-darwin/release/jellyfin-rpc-arm64-darwin |