AppFlowy/.github/workflows/ci.yaml
2021-11-27 09:58:56 +08:00

123 lines
3.7 KiB
YAML

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
rust-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: clippy
override: true
- uses: actions-rs/clippy-check@v1
with:
working-directory: frontend/rust-lib
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features
flutter-lint:
name: flutter analyze
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: subosito/flutter-action@v1
with:
channel: "dev"
- name: flutter pub get
working-directory: frontend/app_flowy
run: flutter pub get
- name: flutter analyze
working-directory: frontend/app_flowy
run: flutter analyze
sdk-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
rustup toolchain install nightly
rustup default nightly
- name: Frontend tests
working-directory: frontend/rust-lib
run: cargo test
- name: Shared-lib tests
working-directory: shared-lib
run: cargo test
build-macos:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Env install
working-directory: frontend
run: make install_rust
- name: Checkou Flutter
uses: actions/checkout@v2
with:
repository: flutter/flutter
path: flutter
- name: Flutter
working-directory: flutter
run: |
echo "$(pwd)/bin" >> $GITHUB_PATH
export PATH="$PATH:$(pwd)/bin"
flutter channel dev
flutter config --enable-macos-desktop
flutter doctor
- name: Deps
working-directory: frontend
run: |
cargo install --force cargo-make
cargo install --force duckscript_cli
cargo make flowy_dev
- name: Build
working-directory: frontend
run: cargo make --profile production-mac-x86 appflowy
build-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Packages
run: |
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
sudo apt-get update
sudo apt-get install -y dart curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
- name: Rust
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
rustup toolchain install nightly
rustup default nightly
- name: Flutter
run: |
git clone --depth 1 -b dev https://github.com/flutter/flutter.git
cd flutter
echo `pwd`"/bin" >> $GITHUB_PATH
export PATH="$PATH:`pwd`/bin"
flutter channel dev
flutter config --enable-linux-desktop
flutter doctor
- name: Deps
working-directory: frontend
run: |
cargo install --force cargo-make
cargo install --force duckscript_cli
cargo make flowy_dev
- name: Build
run: |
cd frontend
cargo make --profile production-linux-x86 appflowy