mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
commit
32e0b5e96d
4
.github/workflows/ci.yaml
vendored
4
.github/workflows/ci.yaml
vendored
@ -32,8 +32,8 @@ jobs:
|
||||
run: |
|
||||
cargo install --force cargo-make
|
||||
cargo install --force duckscript_cli
|
||||
brew install protobuf
|
||||
cargo make flowy_dev
|
||||
echo PATH="$PATH":"$HOME/.pub-cache/bin" >> $GITHUB_PATH
|
||||
- name: Build
|
||||
working-directory: frontend
|
||||
run: cargo make --profile production-mac-x86 appflowy
|
||||
@ -74,8 +74,8 @@ jobs:
|
||||
run: |
|
||||
cargo install --force cargo-make
|
||||
cargo install --force duckscript_cli
|
||||
sudo apt-get install protobuf-compiler
|
||||
cargo make flowy_dev
|
||||
echo PATH="$PATH":"$HOME/.pub-cache/bin" >> $GITHUB_PATH
|
||||
- name: Build
|
||||
working-directory: frontend
|
||||
run: cargo make --profile production-linux-x86 appflowy
|
||||
|
@ -5,7 +5,7 @@
|
||||
# cargo make --profile production-windows-x86 flowy-sdk-dev
|
||||
|
||||
[tasks.env_check]
|
||||
dependencies = ["echo_env", "install-pb-tool-if-need"]
|
||||
dependencies = ["echo_env", "install_protobuf"]
|
||||
condition = { env_set = [ "BUILD_FLAG", "RUST_COMPILE_TARGET", "CRATE_TYPE", "TARGET_OS"], channels = ["stable"] }
|
||||
|
||||
[tasks.flowy-sdk-dev]
|
||||
|
@ -2,16 +2,14 @@
|
||||
[tasks.pb]
|
||||
dependencies = ["check_protoc_cmd", "gen_pb_file"]
|
||||
|
||||
[tasks.install-pb-tool-if-need]
|
||||
[tasks.install_protobuf]
|
||||
condition_script = [
|
||||
"""
|
||||
if [ ! "$(command -v dart)" ]; then
|
||||
echo Please make sure flutter/dart is properly installed and in PATH env var
|
||||
exit 1
|
||||
if [ ! "$(command -v protoc)" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! "$(command -v protoc-gen-dart)" ]; then
|
||||
# not install
|
||||
exit 0
|
||||
fi
|
||||
|
||||
@ -19,19 +17,27 @@ condition_script = [
|
||||
exit 1
|
||||
""",
|
||||
]
|
||||
run_task = { name = ["install_protobuf"] }
|
||||
run_task = { name = ["install_protobuf_compiler"] }
|
||||
|
||||
[tasks.install_protobuf]
|
||||
[tasks.install_protobuf_compiler]
|
||||
script = """
|
||||
brew install protobuf
|
||||
|
||||
echo "Install protoc_plugin (Dart)"
|
||||
dart pub global activate protoc_plugin
|
||||
export PATH="$HOME/.pub-cache/bin:$PATH"
|
||||
|
||||
cargo install --version 2.22.1 protobuf-codegen
|
||||
"""
|
||||
script_runner = "@shell"
|
||||
|
||||
[tasks.install_protobuf.windows]
|
||||
[tasks.install_protobuf_compiler.linux]
|
||||
script = """
|
||||
sudo apt-get install protobuf-compiler
|
||||
|
||||
echo "Install protoc_plugin (Dart)"
|
||||
dart pub global activate protoc_plugin
|
||||
"""
|
||||
script_runner = "@shell"
|
||||
|
||||
[tasks.install_protobuf_compiler.windows]
|
||||
script = """
|
||||
ret = which dart
|
||||
if is_empty ${ret}
|
||||
|
@ -1,10 +1,12 @@
|
||||
#![allow(clippy::all)]
|
||||
#![allow(unused_imports)]
|
||||
#![allow(unused_attributes)]
|
||||
#![allow(dead_code)]
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
use std::process::Command;
|
||||
use walkdir::WalkDir;
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn gen(name: &str, root: &str) {
|
||||
let mut paths = vec![];
|
||||
let mut file_names = vec![];
|
||||
@ -20,9 +22,10 @@ pub fn gen(name: &str, root: &str) {
|
||||
file_names.push(file_name);
|
||||
}
|
||||
}
|
||||
println!("cargo:rerun-if-changed=build.rs");
|
||||
|
||||
// #[cfg(feature = "dart")]
|
||||
// gen_pb_for_dart(name, root, &paths, &file_names);
|
||||
#[cfg(feature = "dart")]
|
||||
gen_pb_for_dart(name, root, &paths, &file_names);
|
||||
|
||||
protoc_rust::Codegen::new()
|
||||
.out_dir("./src/protobuf/model")
|
||||
@ -33,7 +36,6 @@ pub fn gen(name: &str, root: &str) {
|
||||
}
|
||||
|
||||
#[cfg(feature = "dart")]
|
||||
#[allow(dead_code)]
|
||||
fn gen_pb_for_dart(name: &str, root: &str, paths: &Vec<String>, file_names: &Vec<String>) {
|
||||
let output = format!(
|
||||
"{}/{}/{}",
|
||||
@ -44,13 +46,17 @@ fn gen_pb_for_dart(name: &str, root: &str, paths: &Vec<String>, file_names: &Vec
|
||||
if !std::path::Path::new(&output).exists() {
|
||||
std::fs::create_dir_all(&output).unwrap();
|
||||
}
|
||||
check_pb_compiler();
|
||||
|
||||
check_pb_dart_plugin();
|
||||
|
||||
paths.iter().for_each(|path| {
|
||||
if cmd_lib::run_cmd! {
|
||||
protoc --dart_out=${output} --proto_path=${root} ${path}
|
||||
}
|
||||
.is_err()
|
||||
{
|
||||
panic!("Run flutter protoc fail")
|
||||
panic!("Generate pb file failed with: {}", path)
|
||||
};
|
||||
});
|
||||
|
||||
@ -78,3 +84,31 @@ fn gen_pb_for_dart(name: &str, root: &str, paths: &Vec<String>, file_names: &Vec
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn check_pb_compiler() {
|
||||
assert!(run_command("command -v protoc"), "protoc was not installed correctly");
|
||||
}
|
||||
|
||||
fn check_pb_dart_plugin() {
|
||||
assert!(
|
||||
run_command("command -v protoc-gen-dart"),
|
||||
"protoc-gen-dart was not installed correctly"
|
||||
);
|
||||
}
|
||||
|
||||
fn run_command(cmd: &str) -> bool {
|
||||
let output = if cfg!(target_os = "windows") {
|
||||
Command::new("cmd")
|
||||
.arg("/C")
|
||||
.arg(cmd)
|
||||
.status()
|
||||
.expect("failed to execute process")
|
||||
} else {
|
||||
Command::new("sh")
|
||||
.arg("-c")
|
||||
.arg(cmd)
|
||||
.status()
|
||||
.expect("failed to execute process")
|
||||
};
|
||||
output.success()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user