ci.yaml 3.3 KB

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