cantino / mcfly

Fly through your shell history. Great Scott!
MIT License
6.85k stars 178 forks source link

Switch to GitHub actions (Mean Bean CI Template) #136

Closed praveenperera closed 3 years ago

praveenperera commented 3 years ago

This PR replaces trust with a GitHub Actions CI/CD.

Tested and adapted from: https://github.com/avencera/rustywind

You can see action completing: https://github.com/praveenperera/mcfly/actions/runs/693209454 Also releases are being created correctly: https://github.com/praveenperera/mcfly/releases/tag/v0.5.6.2

praveenperera commented 3 years ago

Sorry if you got a lot of notifications, getting M1 builds working on a x86_64 host is quite finicky.

Looks like its all working now though

praveenperera commented 3 years ago

Converted to draft again, issue with SQLite:

https://github.com/rusqlite/rusqlite/issues/871

cantino commented 3 years ago

Thank you for working on this!

Edit: is there anything I can do to help?

praveenperera commented 3 years ago

Hey @cantino right now this is working for all targets except for aarch64-apple-darwin (M1) Macs. And I'm pretty stuck I'm not sure how to fix that. If you want I can disable that and we can merge this in. That way releases will be built on GitHub actions instead of TravisCI. And then if Github allows actions to be run on M1 machines we would be good to go.

For the error see this run: https://github.com/praveenperera/mcfly/runs/2209063416?check_suite_focus=true

It's a problem with linking SQLite. Currently it tries to build the aarch64-apple-darwin on a x64 Mac, which fails during compilation with the following error:

error: linking with `cc` failed: exit code: 1
996
Error:   |
997
  = note: "cc" "-arch" "arm64" "-L" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/runner/work/mcfly/mcfly/target/aarch64-apple-darwin/release/deps/mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o" "-o" "/Users/runner/work/mcfly/mcfly/target/aarch64-apple-darwin/release/deps/mcfly" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/Users/runner/work/mcfly/mcfly/target/aarch64-apple-darwin/release/deps" "-L" "/Users/runner/work/mcfly/mcfly/target/release/deps" "-L" "/Users/runner/work/mcfly/mcfly/target/aarch64-apple-darwin/release/build/libsqlite3-sys-c4a92f6c053ae2b4/out" "-L" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcYTL5S9/liblibsqlite3_sys-c58f20af2085008f.rlib" "/Users/runner/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib/libcompiler_builtins-9eb7dc999785b765.rlib" "-lSystem" "-lresolv" "-lc" "-lm"
998
  = note: ld: warning: ignoring file /var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/rustcYTL5S9/liblibsqlite3_sys-c58f20af2085008f.rlib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
999
          Undefined symbols for architecture arm64:
1000
            "_sqlite3_config", referenced from:
1001
                std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::h460cee1f15495c35 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1002
                core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h5c5c2f064f7282d0 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1003
            "_sqlite3_initialize", referenced from:
1004
                std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::h460cee1f15495c35 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1005
                core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h5c5c2f064f7282d0 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1006
            "_sqlite3_column_type", referenced from:
1007
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1008
            "_sqlite3_column_int64", referenced from:
1009
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1010
            "_sqlite3_column_blob", referenced from:
1011
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1012
            "_sqlite3_bind_double", referenced from:
1013
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1014
            "_sqlite3_bind_int64", referenced from:
1015
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1016
            "_sqlite3_db_handle", referenced from:
1017
                rusqlite::statement::Statement::execute_with_bound_parameters::hb89021b1c4eb2923 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1018
                rusqlite::statement::Statement::step::he39d29b9b177a4fe in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1019
            "_sqlite3_step", referenced from:
1020
                rusqlite::statement::Statement::execute_with_bound_parameters::hb89021b1c4eb2923 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1021
                rusqlite::statement::Statement::step::he39d29b9b177a4fe in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1022
            "_sqlite3_column_bytes", referenced from:
1023
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1024
            "_sqlite3_bind_parameter_index", referenced from:
1025
                rusqlite::statement::Statement::bind_parameters_named::hef15c011a30ab083 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1026
            "_sqlite3_errmsg", referenced from:
1027
                rusqlite::error::error_from_handle::h2ca7bb605d50e383 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1028
            "_sqlite3_result_error_code", referenced from:
1029
                rusqlite::functions::report_error::h8556e1c244135e55 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1030
            "_sqlite3_changes", referenced from:
1031
                rusqlite::statement::Statement::execute_with_bound_parameters::hb89021b1c4eb2923 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1032
            "_sqlite3_unlock_notify", referenced from:
1033
                rusqlite::unlock_notify::wait_for_unlock_notify::h644914fd15ba8147 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1034
            "_sqlite3_reset", referenced from:
1035
                rusqlite::Connection::query_row::h0b15d98a877d9b00 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1036
                rusqlite::Connection::query_row::h94f4e3fee997aba1 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1037
                rusqlite::Connection::query_row::hda13bc5d252ed6ad in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1038
                mcfly::history::schema::migrate::h6280c2f5e4ed010a in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1039
                core::ptr::drop_in_place$LT$rusqlite..row..MappedRows$LT$mcfly..history..schema..cmd_strings..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$::h470c7a5bb2044295 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1040
                mcfly::history::history::History::run_query::h6e39ab32e54c13cb in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1041
                core::ptr::drop_in_place$LT$rusqlite..row..MappedRows$LT$fn$LP$$RF$rusqlite..row..Row$RP$$u20$.$GT$$u20$mcfly..history..history..Command$GT$$GT$::h4dd31e0b2862b016 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1042
                ...
1043
            "_sqlite3_busy_timeout", referenced from:
1044
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1045
            "_sqlite3_libversion_number", referenced from:
1046
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1047
            "_sqlite3_bind_null", referenced from:
1048
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1049
            "_sqlite3_extended_errcode", referenced from:
1050
                rusqlite::Connection::prepare::h2ba838de126f2914 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1051
                rusqlite::statement::Statement::execute_with_bound_parameters::hb89021b1c4eb2923 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1052
                rusqlite::statement::Statement::step::he39d29b9b177a4fe in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1053
            "_sqlite3_threadsafe", referenced from:
1054
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1055
            "_sqlite3_mutex_alloc", referenced from:
1056
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1057
            "_sqlite3_mutex_free", referenced from:
1058
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1059
            "_sqlite3_value_text", referenced from:
1060
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1061
            "_sqlite3_bind_parameter_count", referenced from:
1062
                mcfly::history::schema::migrate::h6280c2f5e4ed010a in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1063
                rusqlite::statement::Statement::bind_parameters::h295093f2d7eccd6b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1064
            "_sqlite3_prepare_v2", referenced from:
1065
                rusqlite::Connection::prepare::h2ba838de126f2914 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1066
            "_sqlite3_extended_result_codes", referenced from:
1067
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1068
            "_sqlite3_close", referenced from:
1069
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1070
                _$LT$rusqlite..InnerConnection$u20$as$u20$core..ops..drop..Drop$GT$::drop::h9564b3d18ec220c2 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1071
            "_sqlite3_column_double", referenced from:
1072
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1073
            "_sqlite3_bind_zeroblob", referenced from:
1074
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1075
            "_sqlite3_result_double", referenced from:
1076
                rusqlite::functions::_$LT$impl$u20$rusqlite..InnerConnection$GT$::create_scalar_function::call_boxed_closure::h5931501c08d6d69e in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1077
            "_sqlite3_column_count", referenced from:
1078
                rusqlite::row::Row::get_checked::he488af53f6d5390f in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1079
                rusqlite::row::Row::get_checked::h897b2078e9d8c3cd in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1080
                rusqlite::row::Row::get_checked::hd4096cfbba072934 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1081
                rusqlite::row::Row::get_checked::h01adf1e45f0c5c12 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1082
                rusqlite::row::Row::get_checked::hee9f5ce5e8cadbab in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1083
                rusqlite::row::Row::get_checked::h4c782d066d74c506 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1084
                rusqlite::row::Row::get_checked::h043001ff694cd2a7 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1085
                ...
1086
            "_sqlite3_value_double", referenced from:
1087
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1088
            "_sqlite3_bind_text", referenced from:
1089
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1090
            "_sqlite3_value_int64", referenced from:
1091
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1092
            "_sqlite3_column_text", referenced from:
1093
                rusqlite::statement::Statement::value_ref::hc2102a1573272db8 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1094
            "_sqlite3_finalize", referenced from:
1095
                core::ptr::drop_in_place$LT$rusqlite..cache..StatementCache$GT$::h877fe1c0a2068841 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1096
                core::ptr::drop_in_place$LT$mcfly..history..history..History$GT$::hc093eb51f788c491 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1097
                rusqlite::Connection::execute::h9c2ff468bd498167 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1098
                core::ptr::drop_in_place$LT$rusqlite..raw_statement..RawStatement$GT$::h62899e5621135a00 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1099
                core::ptr::drop_in_place$LT$rusqlite..statement..Statement$GT$::h091e5eafd2c00e0e in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1100
                rusqlite::Connection::query_row::h0b15d98a877d9b00 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1101
                rusqlite::Connection::query_row::h94f4e3fee997aba1 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1102
                ...
1103
            "_sqlite3_value_blob", referenced from:
1104
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1105
            "_sqlite3_exec", referenced from:
1106
                rusqlite::Connection::execute_batch::hffc5ef2849d53874 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1107
            "_sqlite3_create_function_v2", referenced from:
1108
                mcfly::history::db_extensions::add_db_functions::hf84be4f874cf194f in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1109
            "_sqlite3_bind_blob", referenced from:
1110
                rusqlite::statement::Statement::bind_parameter::hb1ad34f102003a91 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1111
            "_sqlite3_value_bytes", referenced from:
1112
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1113
            "_sqlite3_open_v2", referenced from:
1114
                rusqlite::Connection::open::hadddcc52a86fbe23 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1115
            "_sqlite3_result_error", referenced from:
1116
                rusqlite::functions::report_error::h8556e1c244135e55 in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1117
            "_sqlite3_value_type", referenced from:
1118
                rusqlite::functions::Context::get::h5d901ca5e57e9a2b in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1119
            "_sqlite3_user_data", referenced from:
1120
                rusqlite::functions::_$LT$impl$u20$rusqlite..InnerConnection$GT$::create_scalar_function::call_boxed_closure::h5931501c08d6d69e in mcfly.mcfly.9gysc7yl-cgu.1.rcgu.o
1121
          ld: symbol(s) not found for architecture arm64
1122
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
1123

1124

1125
error: aborting due to previous error; 3 warnings emitted
1126
Error: aborting due to previous error; 3 warnings emitted
1127
error: could not compile `mcfly`
1128
Error: could not compile `mcfly`
1129
To learn more, run the command again with --verbose.
1130
Error: The process '/Users/runner/.cargo/bin/cargo' failed with exit code 101
cantino commented 3 years ago

Hey @cantino right now this is working for all targets except for aarch64-apple-darwin (M1) Macs. And I'm pretty stuck I'm not sure how to fix that. If you want I can disable that and we can merge this in.

Hey @praveenperera, I do think we should disable that and get this merged since travis-ci.org is shutting down.

praveenperera commented 3 years ago

@cantino this is ready to go now without M1

cantino commented 3 years ago

Thanks! Do I need to set a GITHUB_TOKEN?

praveenperera commented 3 years ago

Nope that's automatically available, ref

cantino commented 3 years ago

Thanks, I will try to get this merged shortly. I'm currently out on paternity leave due to 👶🏼

praveenperera commented 3 years ago

Thats great, congratulations!

cantino commented 3 years ago

Thanks @praveenperera! Let's see if we can get this all working.

cantino commented 3 years ago

@praveenperera, these are my old release steps. How have they changed now?

praveenperera commented 3 years ago

@cantino the release steps should still be the same. Push a new vx.x.xx tag kicks off the build.

cantino commented 3 years ago

Can the automatically-created release easily be a draft?

praveenperera commented 3 years ago

@cantino yes it can, here: https://github.com/cantino/mcfly/blob/28989fb5c4c3a417c2990eb2c73fb62f54e222f3/.github/workflows/mean_bean_deploy.yml#L87

Would you like me to do a PR?

Edit: Made a PR if you want: https://github.com/cantino/mcfly/pull/172