Repository: zargony/fuse-rs (language: rust)

Issue:
Set up CI to run tests on FreeBSD
Since rust-fuse works with FreeBSD, we should run CI tests for FreeBSD as well.

/ping @asomers Does Travis CI support this somehow or do we need a different CI provider? Since Rust itself seems to move away from Travis, I was thinking about having a look at Azure pipelines.



Discussion / hints:
Travis doesn't do it.  We need Cirrus-CI, which can either coexist with Travis or completely replace it.  Follow the instructions at https://cirrus-ci.org/guide/quick-start/ up to "post-installation", then ping me and I'll submit a PR for the rest.
I tried Azure Pipelines as well. It's more complex than Travis but works well (MacOS jobs on Travis are failing often lately). They don't have FreeBSD support yet though (well, their CI runner basically works on FreeBSD but they don't have free FreeBSD runners (yet?)). I'll keep Azure in a PR for now.

Cirrus CI is connected to this repo now. Feel free to create a config.

If you have a free minute, could you have a look at the README as well? I added short descriptions on how to install fuse and pkg-config for Linux and Mac, but I didn't know the exact commands / names for FreeBSD.


Fix patch:
diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644
index 0000000..b5f7e40
--- /dev/null
+++ b/.cirrus.yml
@@ -0,0 +1,23 @@
+freebsd_instance:
+  image: freebsd-11-2-release-amd64
+
+task:
+  name: FreeBSD 11.2
+  cargo_cache:
+    folder: $CARGO_HOME/registry
+    fingerprint_script: cat Cargo.lock || echo ""
+  # Install Rust
+  setup_script:
+    - pkg install -y pkgconf fusefs-libs
+    - fetch https://sh.rustup.rs -o rustup.sh
+    - sh rustup.sh -y
+  build_script:
+    - . $HOME/.cargo/env
+    - cargo build --all --all-targets
+  test_script:
+    - . $HOME/.cargo/env
+    - cargo test --all
+  doc_script:
+    - . $HOME/.cargo/env
+    - cargo doc --all --no-deps
+  before_cache_script: rm -rf $CARGO_HOME/registry/index
diff --git a/README.md b/README.md
index 0f3c6bb..f6d483a 100644
--- a/README.md
+++ b/README.md
@@ -74,8 +74,11 @@ brew install pkg-config
 
 ### FreeBSD
 
-<!-- TODO: need more detailed FreeBSD instructions -->
-Install packages `fusefs-libs` and `pkg-config`.
+Install packages `fusefs-libs` and `pkgconf`.
+
+```sh
+pkg install fusefs-libs pkgconf
+```
 
 ## Usage
 
@@ -111,4 +114,4 @@ Fork, hack, submit pull request. Make sure to make it useful for the target audi
 
 [FUSE for Linux]: https://github.com/libfuse/libfuse/
 [FUSE for macOS]: https://osxfuse.github.io
-[FUSE for FreeBSD]: https://wiki.freebsd.org/FuseFilesystem
+[FUSE for FreeBSD]: https://wiki.freebsd.org/FUSEFS


Test patch: