ci.yaml 3.7 KB

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