From edd8ac843c7bc77d9a8e02caecd35ab7e2c794ac Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Sat, 15 Feb 2020 21:35:56 +0100
Subject: [PATCH 1/2] [ci] create ci

---
 .gitlab-ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 README.md      |  2 +-
 deny.toml      | 36 ++++++++++++++++++++++++++++++++++++
 3 files changed, 85 insertions(+), 1 deletion(-)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 deny.toml

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..0208838
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,48 @@
+stages:
+  - fmt
+  - tests
+  - quality
+  - package
+
+.rust_stable_lin64:
+  image: registry.duniter.org/docker/dunitrust/dunitrust-ci-lin64:latest
+  tags:
+    - redshift-docker-runner
+  before_script:
+    - export PATH="$HOME/.cargo/bin:$PATH"
+    - rustup show
+    - rustc --version && cargo --version
+
+fmt:
+  extends: .rust_stable_lin64
+  stage: fmt
+  before_script:
+    - cargo fmt -- --version
+  script:
+    - cargo fmt -- --check
+        
+tests:linux64:stable:
+  extends: .rust_stable_lin64
+  stage: tests
+  tags:
+    - redshift-docker-runner
+  script: 
+    - cd cli
+    - RUSTFLAGS="-D warnings" cargo build
+    - cargo test --all
+
+clippy:
+  extends: .rust_stable_lin64
+  before_script:
+    - cargo clippy -- -V
+  stage: quality
+  script:
+    - cargo clippy --all -- -D warnings --verbose
+    
+audit_dependencies:
+  extends: .rust_stable_lin64
+  before_script:
+    - cargo deny -V
+  stage: quality
+  script:
+    - cargo deny check
diff --git a/README.md b/README.md
index c22381f..c0084c3 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 Mnemonic generator
 
-# CLi usage
+## CLi usage
 
     dup-mnemonic [OPTIONS]
 
diff --git a/deny.toml b/deny.toml
new file mode 100644
index 0000000..78d65b1
--- /dev/null
+++ b/deny.toml
@@ -0,0 +1,36 @@
+[bans]
+multiple-versions = "warn"
+deny = [
+    # color-backtrace is nice but brings in too many dependencies and that are often outdated, so not worth it for us.
+    { name = "color-backtrace" },
+
+    # deprecated
+    { name = "quickersort" },
+
+    # term is not fully maintained, and termcolor is replacing it
+    { name = "term" },
+]
+skip-tree = [ 
+    { name = "winapi", version = "<= 0.3" }
+]
+
+[licenses]
+unlicensed = "deny"
+# We want really high confidence when inferring licenses from text
+confidence-threshold = 0.92
+allow = [
+    "AGPL-3.0",
+    "Apache-2.0",
+    "BSD-2-Clause",
+    "BSD-3-Clause",
+    "CC0-1.0",
+    "ISC",
+    "MIT",
+    "MPL-2.0",
+    "OpenSSL",
+    "Zlib"
+]
+
+[sources]
+unknown-registry = "deny"
+unknown-git = "deny"
-- 
GitLab


From 451ee7b5842cb8b8f41a897e67b3d164a43b828d Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Sat, 15 Feb 2020 21:54:47 +0100
Subject: [PATCH 2/2] [ci] add package job

---
 .gitlab-ci.yml | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0208838..f875dd4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -46,3 +46,31 @@ audit_dependencies:
   stage: quality
   script:
     - cargo deny check
+
+package:test:lin64:deb:
+  extends: .rust_stable_lin64
+  stage: package
+  when: manual
+  except:
+    refs:
+      - tags
+  script:
+    - mkdir package
+    - cargo deb --manifest-path "cli/Cargo.toml" --output "package/dup-mnemotic-test-linux-x64.deb"
+  artifacts:
+    paths:
+      - package/
+    expire_in: 1 weeks
+
+package:prod:linux64:
+  extends: .rust_stable_lin64
+  stage: package
+  only:
+    - tags
+  script:
+    - mkdir package
+    - cargo deb --manifest-path "cli/Cargo.toml" --output "package/dup-mnemotic-${CI_COMMIT_TAG#v}-linux-x64.deb"
+  artifacts:
+    paths:
+      - package/
+    expire_in: 2 weeks
-- 
GitLab