safedb 0.10.5 → 0.10.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5221d9e392de0ee7e1d506642281edbed9531f7b1cc8846f948c8186edeb1e3
4
- data.tar.gz: 83805b1ef1d48f03171863ffb7ce6da789c4fadbda0946f5750ecf13a3de1417
3
+ metadata.gz: c67424b22f9a73d0be06e67f944d0d63773bfef5d55ef48bb2e1124c9020f476
4
+ data.tar.gz: 58c4f61eaa4bf72dda710ef7d235f9c09ff6e0021d02ec27afd9fe3d0c5b219b
5
5
  SHA512:
6
- metadata.gz: 5601e437f9bcd5c05cf956b48ec453fbbccb144799e5cbfd2d89228aa0589cd16ac7ed345f8002f9887c37e05103e97e2e1d4d92675a4a5ced378612bcb254e5
7
- data.tar.gz: ba1c693c125a8d625e9c0a7020583a7616fe8394e6ed72400af3b661d391f806a8db8695f4c69b2654cd2a74981fe8e57ea4702d09a047aaf374000f6dfa373c
6
+ metadata.gz: 3c4818f807d171f57c195e5454d04c38bb0a22cdf5d13eeaf53ace02adea33caeafc82e9cb3316b37df28758dd81c5d46cb924f61b6bd2b68c74e0c08df8ac6c
7
+ data.tar.gz: 247b63933c58ae0e28ce709262f1662a7305950e7549db8cb390a0716d2fd51da9ca13468d87d58157f300c209e8b499600dca92462d1bd3ee23af11c242fb73
data/.gitignore CHANGED
@@ -3,6 +3,6 @@
3
3
  /_yardoc/
4
4
  /coverage/
5
5
  /doc/
6
- /pkg/
6
+ /pkg/*.gem
7
7
  /spec/reports/
8
8
  /tmp/
data/CONTRIBUTING.md CHANGED
@@ -179,3 +179,22 @@ safedb.net has Dockerfiles through which the Cucumber/Aruba BDD (behaviour drive
179
179
  ### CI/CD Pipeline from Git to RubyGems.org
180
180
 
181
181
  The Jenkinsfile template used is in the RubyGem category so succesful builds, quality inspection and tests result in a new version of the software being released to RubyGems.org
182
+
183
+
184
+ ## Wiki Continuous Integration Pipeline
185
+
186
+ The continuous integration pipeline runs on top of a dockerized **Jenkins and Kubernetes platform** and if successful is deployed into a cloud production Kubernetes platform.
187
+
188
+ The pipeline steps defined in the Jenkinsfile are to
189
+
190
+ - skip the build if the commit message has skip ci in it from version number update
191
+ - use [Google Kaniko] to build this Dockerfile from this wiki base image
192
+ - push the Dockerfile with the latest tag to this Dockerhub repository
193
+ - create another pod to run the just-built devopswiki.co.uk image
194
+ - configure the container with a readiness probe so it does not receive traffic too early
195
+ - run a linkcheck activity using this Dockerhub linkcheck image (from this Github repo)
196
+ - if the linkchecking produces errors the pipeline fails and stops
197
+ - on success the devopswiki image is tagged with build number, Git commit ref and timestamp
198
+ - a kubectl rollout is issued based on the newly tagged devopswiki image
199
+ - change the standing start Kubernetes deployment configs to reflect the new tag
200
+
data/Dockerfile CHANGED
@@ -13,34 +13,45 @@ RUN gem install gem-release cucumber aruba yard reek
13
13
  # ---> orchestrate and validate command line behaviour.
14
14
  # --->
15
15
 
16
- RUN adduser --home /home/safeci --shell /bin/bash --gecos 'Safe TTY Test User' safeci && \
17
- install -d -m 755 -o safeci -g safeci /home/safeci
16
+ # --------------------------> RUN adduser --home /home/safeci --shell /bin/bash --gecos 'Safe TTY Test User' safeci && \
17
+ # --------------------------> install -d -m 755 -o safeci -g safeci /home/safeci
18
18
 
19
+ # --------------------------> RUN chown -R safeci:safeci /home/safeci
19
20
 
20
21
  # --->
21
- # ---> Copy the project assets into the docker image.
22
+ # --->
23
+ # ---> As the safeci user employ cucumber and aruba to recursively
24
+ # ---> find and execute all cucumber (*.feature) files under lib.
22
25
  # --->
23
26
 
24
- COPY . /home/safeci/code/
27
+ # --------------------------> USER safeci
28
+ # --------------------------> WORKDIR /home/safeci/code
29
+
30
+
31
+
32
+
25
33
 
34
+ # ----------------->
35
+ # ----------------->
36
+ # -----------------> The plan is to replace above safeci wity rubyist (chemist, scientist, dentist)
37
+ # -----------------> and let Dockerhub build the image as it is now global to ruby projects.
38
+ # ----------------->
39
+ # ----------------->
40
+ # ----------------->
26
41
 
27
42
  # --->
28
- # ---> Use rake to Copy the project assets into the docker image.
43
+ # ---> Copy the project assets into the docker image.
29
44
  # --->
30
45
 
31
- RUN chown -R safeci:safeci /home/safeci && \
32
- chmod u+x /home/safeci/code/cucumber-test.sh && \
33
- cd /home/safeci/code && \
34
- rake install
46
+ # -----------------> COPY . /home/safeci/code/
35
47
 
36
48
 
37
49
  # --->
38
- # --->
39
- # ---> As the safeci user employ cucumber and aruba to recursively
40
- # ---> find and execute all cucumber (*.feature) files under lib.
50
+ # ---> Use rake to Copy the project assets into the docker image.
41
51
  # --->
42
52
 
43
- USER safeci
44
- WORKDIR /home/safeci/code
53
+ # -----------------> RUN chown -R safeci:safeci /home/safeci && \
54
+ # -----------------> cd /home/safeci/code && \
55
+ # -----------------> rake install
56
+
45
57
 
46
- ####### ENTRYPOINT [ "/home/safeci/code/cucumber-test.sh" ]
data/Jenkinsfile CHANGED
@@ -3,6 +3,18 @@ pipeline
3
3
  agent none
4
4
  stages
5
5
  {
6
+ /*
7
+ stage('Maybe Skip Build')
8
+ {
9
+ agent any
10
+ steps
11
+ {
12
+ scmSkip(deleteBuild: false, skipPattern:'.*\\[skip ci\\].*')
13
+ }
14
+
15
+ }
16
+ */
17
+ /*
6
18
  stage('Build Safe Docker Image')
7
19
  {
8
20
  agent
@@ -10,21 +22,18 @@ pipeline
10
22
  kubernetes
11
23
  {
12
24
  defaultContainer 'kaniko'
13
- yamlFile 'pod-image-builder.yaml'
25
+ yamlFile 'pod-image-build.yaml'
14
26
  }
15
27
  }
16
28
  steps
17
29
  {
18
- /*
19
- * We checkout the git repository again because we
20
- * are running in a different pod setup specifically
21
- * to build and test the software.
22
- */
23
30
  checkout scm
24
- sh '/kaniko/executor -f `pwd`/Dockerfile -c `pwd` --destination devops4me/safetty:latest --cleanup'
31
+ sh '/kaniko/executor -f `pwd`/Dockerfile -c `pwd` --destination devops4me/haven:latest --cleanup'
25
32
  }
26
33
  }
27
- stage('Run the Cucumber Tests')
34
+ */
35
+ /*
36
+ stage('Reek Static Code Analysis')
28
37
  {
29
38
  agent
30
39
  {
@@ -37,7 +46,61 @@ pipeline
37
46
  {
38
47
  container('safettytests')
39
48
  {
40
- sh '/home/safeci/code/cucumber-test.sh'
49
+ sh 'reek lib || true'
50
+ }
51
+ }
52
+ }
53
+ */
54
+ stage('Cucumber Aruba Tests')
55
+ {
56
+ agent
57
+ {
58
+ kubernetes
59
+ {
60
+ yamlFile 'pod-image-test.yaml'
61
+ }
62
+ }
63
+ steps
64
+ {
65
+ container('safehaven')
66
+ {
67
+ checkout scm
68
+ sh 'rake install'
69
+ sh 'export SAFE_TTY_TOKEN=$(safe token) ; cucumber lib'
70
+ }
71
+ }
72
+ }
73
+ stage('Release to RubyGems.org')
74
+ {
75
+ agent
76
+ {
77
+ kubernetes
78
+ {
79
+ yamlFile 'pod-image-release.yaml'
80
+ }
81
+ }
82
+ when { environment name: 'GIT_BRANCH', value: 'origin/master' }
83
+ steps
84
+ {
85
+ container('safehaven')
86
+ {
87
+ checkout scm
88
+ sh 'git status'
89
+ sh 'git remote -v'
90
+ sh 'pwd'
91
+ sh 'ls -lah'
92
+ sh 'ls -lah $HOME/gitsshconfig'
93
+ sh 'ls -lah $HOME/gitsshkey'
94
+ sh 'cat $HOME/gitsshconfig/config'
95
+ sh 'mkdir -p $HOME/.ssh && cp $HOME/gitsshconfig/config $HOME/.ssh/config'
96
+ sh 'mkdir -p $HOME/.gem && cp $HOME/gemcredentials/credentials $HOME/.gem/credentials'
97
+ sh 'chmod 0600 $HOME/.gem/credentials'
98
+ sh 'git config --global user.email apolloakora@gmail.com'
99
+ sh 'git config --global user.name "Apollo Akora"'
100
+ sh 'ssh -i $HOME/gitsshkey/safedb.code.private.key.pem -vT git@safedb.code || true'
101
+ sh 'git remote set-url --push origin git@safedb.code:devops4me/safedb.net.git'
102
+ sh 'git branch && git checkout master'
103
+ sh 'gem bump minor --tag --release --file=$PWD/lib/version.rb'
41
104
  }
42
105
  }
43
106
  }
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/ruby
2
+
3
+ module SafeDb
4
+
5
+ # The safe send command is used to transmit the contents of a book, chapter,
6
+ # verse or line using common messaging frameworks such as email, SMS and slack.
7
+ # Docker Secrets, HashiCorp's Vault and more besides.
8
+ #
9
+ # Navigate using `safe open` or `safe goto` to the chapter or verse that you
10
+ # wish to send and simply specify the message destination be it an email address
11
+ # or a mobile phone number.
12
+ #
13
+ # - `safe send colleague@example.com`
14
+ # - `safe send 07500765432`
15
+ #
16
+ # Visit documentation at https://www.safedb.net/docs/send
17
+ class Send < QueryVerse
18
+
19
+ def query_verse()
20
+
21
+
22
+ end
23
+
24
+
25
+ end
26
+
27
+
28
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SafeDb
2
- VERSION = "0.10.5"
2
+ VERSION = "0.10.12"
3
3
  end
data/pkg/README.md ADDED
@@ -0,0 +1,4 @@
1
+
2
+ # The SafeDb Gem Packages
3
+
4
+ This folder holds the safedb gem packages built by rake install.
File without changes
@@ -0,0 +1,36 @@
1
+ metadata:
2
+ labels:
3
+ pod-type: jenkins-worker
4
+ spec:
5
+ containers:
6
+ - name: jnlp
7
+ env:
8
+ - name: CONTAINER_ENV_VAR
9
+ value: jnlp
10
+ - name: safehaven
11
+ image: devops4me/rubygem:latest
12
+ imagePullPolicy: Always
13
+ volumeMounts:
14
+ - name: gitsshconfig
15
+ mountPath: /root/gitsshconfig
16
+ - name: gitsshkey
17
+ mountPath: /root/gitsshkey
18
+ - name: gemcreds
19
+ mountPath: /root/gemcredentials
20
+ command:
21
+ - cat
22
+ tty: true
23
+ env:
24
+ - name: CONTAINER_ENV_VAR
25
+ value: safehaven
26
+ volumes:
27
+ - name: gitsshconfig
28
+ secret:
29
+ secretName: safegitsshconfig
30
+ - name: gitsshkey
31
+ secret:
32
+ secretName: safegitsshkey
33
+ defaultMode: 256
34
+ - name: gemcreds
35
+ secret:
36
+ secretName: saferubygemscreds
@@ -7,12 +7,12 @@ spec:
7
7
  env:
8
8
  - name: CONTAINER_ENV_VAR
9
9
  value: jnlp
10
- - name: safettytests
11
- image: devops4me/safetty:latest
10
+ - name: safehaven
11
+ image: devops4me/rubygem:latest
12
12
  imagePullPolicy: Always
13
13
  command:
14
14
  - cat
15
15
  tty: true
16
16
  env:
17
17
  - name: CONTAINER_ENV_VAR
18
- value: safettytests
18
+ value: safehaven
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: safedb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.5
4
+ version: 0.10.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Apollo Akora
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-05 00:00:00.000000000 Z
11
+ date: 2020-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -101,7 +101,6 @@ files:
101
101
  - README.md
102
102
  - Rakefile
103
103
  - bin/safe
104
- - cucumber-test.sh
105
104
  - lib/cli.rb
106
105
  - lib/controller/abstract/authenticate.rb
107
106
  - lib/controller/abstract/controller.rb
@@ -157,6 +156,7 @@ files:
157
156
  - lib/controller/query/copy.rb
158
157
  - lib/controller/query/print.rb
159
158
  - lib/controller/query/publish.rb
159
+ - lib/controller/query/send.rb
160
160
  - lib/controller/query/show.rb
161
161
  - lib/controller/query/tell.rb
162
162
  - lib/controller/requirer.rb
@@ -221,8 +221,10 @@ files:
221
221
  - lib/utils/store/struct.rb
222
222
  - lib/utils/time/timestamp.rb
223
223
  - lib/version.rb
224
- - pod-image-builder.yaml
225
- - pod-image-safetty.yaml
224
+ - pkg/README.md
225
+ - pod-image-build.yaml
226
+ - pod-image-release.yaml
227
+ - pod-image-test.yaml
226
228
  - safedb.gemspec
227
229
  homepage: https://www.safedb.net
228
230
  licenses:
@@ -244,8 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
244
246
  - !ruby/object:Gem::Version
245
247
  version: '0'
246
248
  requirements: []
247
- rubyforge_project:
248
- rubygems_version: 2.7.6
249
+ rubygems_version: 3.1.2
249
250
  signing_key:
250
251
  specification_version: 4
251
252
  summary: safe locks and unlocks secrets in a simple, secure and intuitive way.
data/cucumber-test.sh DELETED
@@ -1,55 +0,0 @@
1
- #!/bin/bash
2
-
3
- ## ####################################### ##
4
- ## Exit this script when any command fails ##
5
- ## ####################################### ##
6
- set -e
7
-
8
- # ++ +++ ++++++ # +++++ +++++++ # +++ +++++++++ # +++++++ # ++++ +++++ ++ #
9
- # ++ --- ------ # ----- ------- # --- --------- # ------- # ---- ----- ++ #
10
- # ++ ++ #
11
- # ++ Prepare for the cucumber orchestrated tests that are part of the ++ #
12
- # ++ build for the safedb personal database. This script exports the ++ #
13
- # ++ protective safe token and then executes cucumber feature files. ++ #
14
- # ++ ++ #
15
- # ++ --- ------ # ----- ------- # --- --------- # ------- # ---- ----- ++ #
16
- # ++ +++ ++++++ # +++++ +++++++ # +++ +++++++++ # +++++++ # ++++ +++++ ++ #
17
-
18
- echo "" ; echo "" ;
19
- echo "### ######################################## ###"
20
- echo "### Static Code Quality Analyzer Suggestions ###"
21
- echo "### ######################################## ###"
22
- echo ""
23
-
24
- reek lib
25
- echo ""
26
-
27
- echo "" ; echo "" ;
28
- echo "### ################################## ###"
29
- echo "### Ruby Execution Environment Details ###"
30
- echo "### ################################## ###"
31
- echo ""
32
-
33
- echo "Current directory is $(pwd)"
34
- echo "Current username is $(whoami)"
35
- echo "" ; ls -lh
36
- safe version
37
-
38
- echo ""
39
- echo "### ################################ ###"
40
- echo "### Exporting safe shell (tty) token ###"
41
- echo "### ################################ ###"
42
- echo ""
43
-
44
- export SAFE_TTY_TOKEN=$(safe token)
45
-
46
- echo "" ; echo "" ;
47
- echo "### ###################################### ###"
48
- echo "### Now executing the cucumber/aruba tests ###"
49
- echo "### ###################################### ###"
50
- echo ""
51
-
52
- cucumber lib
53
- echo ""
54
-
55
- exit 0