mirror of
https://github.com/jkcoxson/idevice.git
synced 2026-03-02 06:26:15 +01:00
Create ci.yml
This commit is contained in:
164
.github/workflows/ci.yml
vendored
Normal file
164
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,164 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
macos:
|
||||
name: macOS Build
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install just
|
||||
run: |
|
||||
curl -sL https://just.systems/install.sh | bash -s -- --to ~/.cargo/bin
|
||||
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Cache Cargo
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: macos-cargo-${{ hashFiles('**/Cargo.lock', 'justfile') }}
|
||||
restore-keys: macos-cargo-
|
||||
|
||||
- name: Build all Apple targets and examples/tools
|
||||
run: |
|
||||
just macos-ci-check
|
||||
|
||||
- name: Upload static libraries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: libidevice-macos-a
|
||||
path: |
|
||||
target/*apple*/release/libidevice_ffi.a
|
||||
|
||||
- name: Upload headers
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-headers
|
||||
path: ffi/idevice.h
|
||||
|
||||
- name: Upload macOS+iOS XCFramework
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-xcframework
|
||||
path: swift/bundle.zip
|
||||
|
||||
- name: Upload C examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-c-examples-macos
|
||||
path: cpp/examples/build-c/*
|
||||
|
||||
- name: Upload C++ examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-cpp-examples-macos
|
||||
path: cpp/examples/build-cpp/*
|
||||
|
||||
linux:
|
||||
name: Linux Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install build dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y build-essential cmake
|
||||
|
||||
- name: Install just
|
||||
run: |
|
||||
curl -sL https://just.systems/install.sh | bash -s -- --to ~/.cargo/bin
|
||||
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Cache Cargo
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: linux-cargo-${{ hashFiles('**/Cargo.lock', 'justfile') }}
|
||||
restore-keys: linux-cargo-
|
||||
|
||||
- name: Build Rust and examples/tools
|
||||
run: |
|
||||
just ci-check
|
||||
|
||||
- name: Upload static library
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: libidevice-linux-a
|
||||
path: target/release/libidevice_ffi.a
|
||||
|
||||
- name: Upload headers
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-headers
|
||||
path: ffi/idevice.h
|
||||
|
||||
- name: Upload C examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-c-examples-linux
|
||||
path: cpp/examples/build-c/*
|
||||
|
||||
- name: Upload C++ examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-cpp-examples-linux
|
||||
path: cpp/examples/build-cpp/*
|
||||
|
||||
windows:
|
||||
name: Windows Build
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install just
|
||||
run: |
|
||||
iwr https://just.systems/install.ps1 -UseBasicParsing | iex
|
||||
echo "$env:USERPROFILE\.cargo\bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
|
||||
|
||||
- name: Cache Cargo
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~\AppData\Local\cargo\registry
|
||||
~\AppData\Local\cargo\git
|
||||
target
|
||||
key: windows-cargo-${{ hashFiles('**/Cargo.lock', 'justfile') }}
|
||||
restore-keys: windows-cargo-
|
||||
|
||||
- name: Build Rust and examples/tools
|
||||
run: |
|
||||
just ci-check
|
||||
|
||||
- name: Upload static library
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: libidevice-windows-a
|
||||
path: target\release\idevice_ffi.lib
|
||||
|
||||
- name: Upload headers
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-headers
|
||||
path: ffi\idevice.h
|
||||
|
||||
- name: Upload C examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-c-examples-windows
|
||||
path: cpp\examples\build-c\*
|
||||
|
||||
- name: Upload C++ examples/tools
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: idevice-cpp-examples-windows
|
||||
path: cpp\examples\build-cpp\*
|
||||
Reference in New Issue
Block a user