Skip to content

wip

wip #63

Workflow file for this run

on: [push, pull_request]
name: CI
env:
# This is required to enable the web_sys clipboard API which egui_web uses
# https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
# https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html
RUSTFLAGS: --cfg=web_sys_unstable_apis
jobs:
check:
name: Cargo Check x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: sudo apt-get install librust-atk-dev libgtk-3-dev
- uses: actions-rs/cargo@v1
with:
command: check
args: --all-features
check_wasm:
name: Cargo Check wasm32
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: wasm32-unknown-unknown
override: true
- uses: actions-rs/cargo@v1
with:
command: check
args: --all-features --lib --target wasm32-unknown-unknown
test:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev librust-atk-dev libgtk-3-dev
- uses: actions-rs/cargo@v1
with:
command: test
args: --lib
fmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- run: sudo apt-get install librust-atk-dev libgtk-3-dev
- uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
trunk:
name: Build for Web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Download and install Trunk binary
run: wget -qO- https://github.com/thedodd/trunk/releases/latest/download/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
- name: Build
run: ./trunk build --release
- name: Rename artifacts
run: mv dist vds-web
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-web
path: ${{github.workspace}}/vds-web
build_linux_x86_64:
name: Build for Linux x86_64 (Ubuntu)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev librust-atk-dev libgtk-3-dev
- uses: actions-rs/cargo@v1
with:
command: build
args: --release
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-linux-x86-64
path: ${{github.workspace}}/target/release/vds
build_macos_intel:
name: Build for macOS (Intel)
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
target: x86_64-apple-darwin
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-apple-darwin
- name: Build App Bundle
run: sh assets/macos_bundle/build_app_bundle.sh
# TODO: Needs proper a signature to work on other peoples computers
# - name: Install create-dmg
# run: brew install create-dmg
# - name: Create Disk Image
# run: sh assets/macos_bundle/build_dmg.sh
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-macos-intel
path: "${{github.workspace}}/bundle"
build_macos_arm64:
name: Build for macOS (arm64)
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
target: aarch64-apple-darwin
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --target aarch64-apple-darwin
- name: Build App Bundle
run: sh assets/macos_bundle/build_app_bundle.sh
# TODO: Needs proper a signature to work on other peoples computers
- name: Install create-dmg
run: brew install create-dmg
- name: Create Disk Image
run: sh assets/macos_bundle/build_dmg.sh
# It appears that the .zip process of GitHub itself breaks App Bundle and removes the executable properties
- name: Zip App Bundle
run: zip -r vds.zip bundle
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-macos-arm64-zip
path: "${{github.workspace}}/vds.zip"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-macos-arm64-bin
path: "${{github.workspace}}/target/aarch64-apple-darwin/release/vds"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-macos-arm64
path: "${{github.workspace}}/bundle"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-macos-arm64-dmg
path: "${{github.workspace}}/Volume Data Suite.dmg"
build_windows:
name: Build for Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
target: x86_64-pc-windows-msvc
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-pc-windows-msvc
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: vds-windows
path: ${{github.workspace}}/target/x86_64-pc-windows-msvc/release/vds.exe