ci.yaml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. name: CI
  2. on:
  3. push:
  4. branches: [main]
  5. pull_request:
  6. branches: [main]
  7. jobs:
  8. rust-lint:
  9. runs-on: ubuntu-latest
  10. steps:
  11. - uses: actions/checkout@v2
  12. - uses: actions-rs/toolchain@v1
  13. with:
  14. toolchain: nightly
  15. components: clippy
  16. override: true
  17. - uses: actions-rs/clippy-check@v1
  18. with:
  19. token: ${{ secrets.GITHUB_TOKEN }}
  20. args: --all-features
  21. flutter-lint:
  22. name: flutter analyze
  23. runs-on: ubuntu-latest
  24. steps:
  25. - name: Checkout
  26. uses: actions/checkout@v2
  27. - uses: subosito/flutter-action@v1
  28. with:
  29. channel: "dev"
  30. - name: flutter pub get
  31. working-directory: frontend/app_flowy
  32. run: flutter pub get
  33. - name: flutter analyze
  34. working-directory: frontend/app_flowy
  35. run: flutter analyze
  36. sdk-tests:
  37. runs-on: ubuntu-latest
  38. steps:
  39. - name: Checkout
  40. uses: actions/checkout@v2
  41. - name: Install Rust
  42. run: |
  43. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
  44. source $HOME/.cargo/env
  45. rustup toolchain install nightly
  46. rustup default nightly
  47. - name: Frontend tests
  48. working-directory: frontend/rust-lib
  49. run: cargo test
  50. - name: Shared-lib tests
  51. working-directory: shared-lib
  52. run: cargo test
  53. build-macos:
  54. runs-on: macOS-latest
  55. steps:
  56. - name: Checkout
  57. uses: actions/checkout@v2
  58. - name: Env install
  59. working-directory: frontend
  60. run: make install_rust
  61. - name: Checkou Flutter
  62. uses: actions/checkout@v2
  63. with:
  64. repository: flutter/flutter
  65. path: flutter
  66. - name: Flutter
  67. working-directory: flutter
  68. run: |
  69. echo "$(pwd)/bin" >> $GITHUB_PATH
  70. export PATH="$PATH:$(pwd)/bin"
  71. flutter channel dev
  72. flutter config --enable-macos-desktop
  73. flutter doctor
  74. - name: Deps
  75. working-directory: frontend
  76. run: |
  77. cargo install --force cargo-make
  78. cargo install --force duckscript_cli
  79. cargo make flowy_dev
  80. - name: Build
  81. working-directory: frontend
  82. run: cargo make --profile production-mac-x86 appflowy
  83. build-ubuntu:
  84. runs-on: ubuntu-latest
  85. steps:
  86. - name: Checkout
  87. uses: actions/checkout@v2
  88. - name: Packages
  89. run: |
  90. sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
  91. sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
  92. sudo apt-get update
  93. sudo apt-get install -y dart curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
  94. - name: Rust
  95. run: |
  96. curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
  97. source $HOME/.cargo/env
  98. rustup toolchain install nightly
  99. rustup default nightly
  100. - name: Flutter
  101. run: |
  102. git clone --depth 1 -b dev https://github.com/flutter/flutter.git
  103. cd flutter
  104. echo `pwd`"/bin" >> $GITHUB_PATH
  105. export PATH="$PATH:`pwd`/bin"
  106. flutter channel dev
  107. flutter config --enable-linux-desktop
  108. flutter doctor
  109. - name: Deps
  110. working-directory: frontend
  111. run: |
  112. cargo install --force cargo-make
  113. cargo install --force duckscript_cli
  114. cargo make flowy_dev
  115. - name: Build
  116. run: |
  117. cd frontend
  118. cargo make --profile production-linux-x86 appflowy