List of commits:
Subject Hash Author Date (UTC)
docs: css tweaks d270a286b160bb5de39ade5d99a58fe26e03b2d5 Catalin(ux) M. BOIE 2020-06-30 17:21:02
Improved admin report 9fa82cc2878886c2195cdd3f334dd532b3ea6a22 Catalin(ux) M. BOIE 2020-06-28 10:19:24
First version of artifacts ad6b6c75aab8d485ea45c1d851f23d83587d6931 Catalin(ux) M. BOIE 2020-06-27 13:11:17
Allow adding bugs for public repos + small fixes e67955ce3360c8c003a718e01844b3d8effa74a6 Catalin(ux) M. BOIE 2020-06-25 16:05:54
History updates 4c4aef444bbd1149f2c02b6da620f184aae1eed6 Catalin(ux) M. BOIE 2020-06-16 05:53:14
Allow cron to execute sub-tasks in parallel - we missed stats f65c76714cf349a53f584c8e65d9e89c24a4fa69 Catalin(ux) M. BOIE 2020-06-12 06:50:40
bug: search: fixed the override of some global variables 82e251ea883e50b8d1476530e0268fd5770fbf41 Catalin(ux) M. BOIE 2020-06-10 21:29:03
If a repo is non-existent, we should not try to use the id bcb08f74e21556aa750920335ebec2f965e72f36 Catalin(ux) M. BOIE 2020-06-10 08:05:43
If no activity, average elap is not computed correctly a7d4f0042c912d29f7943e0446820a477f42d6f7 Catalin(ux) M. BOIE 2020-06-09 07:03:21
When a user is requesting an e-mail confirmation operation, ignore if the e-mail was confirmed 62c387ed431d0c46d16e534cc1c954557ee389f7 Catalin(ux) M. BOIE 2020-06-08 06:42:22
Reverse test messed the creation of partition tables; more debugging d820816c2624549e0b0e1634523717cda0b7ba66 Catalin(ux) M. BOIE 2020-06-05 17:33:08
We need to prepare the partition tables before some inserts 07a12d1c79104b4707a9d43463fa9c11a4697293 Catalin(ux) M. BOIE 2020-06-05 15:55:43
.spec updates 5fe0aca1b4a3bfd8c1c8db95409faf512ad09b43 Catalin(ux) M. BOIE 2020-06-04 22:03:57
Switch to Podman (because of Fedora 32) and fix the worker service in the spec file 05b3866cd09b0aa8367d3b5755f45ea7274658de Catalin(ux) M. BOIE 2020-06-04 15:50:41
Added sample configuration for workers df36ccd20e40987a4ca2355062ee1312aa2ee3a2 Catalin(ux) M. BOIE 2020-06-04 15:14:52
Avoid complains from install for systemd daemon-reload 683a92542cc0608293ceefc111a05e1eb328a2d8 Catalin(ux) M. BOIE 2020-06-04 15:09:57
Small stuff e64a838d032e54587ab3110ab8bb04a0cde78231 Catalin(ux) M. BOIE 2020-06-04 14:49:56
Lots of changes b8164d9e1e263eb4db75e32430f0753b63d0028e Catalin(ux) M. BOIE 2020-06-04 07:14:35
Lots of small fixes and functional tests ad2c8f4ce214896cb5984031dbd916467878ccfd Catalin(ux) M. BOIE 2020-05-16 09:30:47
Lots of things, mostly worker fixes 8768227306ef89ecc51d392cf986e75a7044dde4 Catalin(ux) M. BOIE 2020-04-10 15:27:11
Commit d270a286b160bb5de39ade5d99a58fe26e03b2d5 - docs: css tweaks
Author: Catalin(ux) M. BOIE
Author date (UTC): 2020-06-30 17:21
Committer name: Catalin(ux) M. BOIE
Committer date (UTC): 2020-06-30 17:21
Parent(s): 9fa82cc2878886c2195cdd3f334dd532b3ea6a22
Signer:
Signing key:
Signing status: N
Tree: 6402f3bfb44eb61ee0b6fac91b91088255750b7c
File Lines added Lines deleted
root/themes/default/doc/api.html 10 20
root/themes/default/doc/demo/container.html 13 13
root/themes/default/doc/demo/demos/artifacts/python1/main.html 0 1
root/themes/default/doc/demo/demos/ci-1/about/main.html 3 6
root/themes/default/doc/demo/demos/ci-1/trigger/main.html 5 13
root/themes/default/doc/worker.html 3 6
root/themes/default/main.css 5 2
File root/themes/default/doc/api.html changed (mode: 100644) (index 9caad96..ac95522)
25 25
26 26
27 27 Example of error:<br /> Example of error:<br />
28 <div class="term">
29 $ curl --header 'Authorization: bla this_is_your_api_key' \
28 <div class="term">$ curl --header 'Authorization: bla this_is_your_api_key' \
30 29 --data '{"cmd": "invalid_cmd", "user": "bla"}' \ --data '{"cmd": "invalid_cmd", "user": "bla"}' \
31 30 @@base_url@@/op/api @@base_url@@/op/api
32 31 $ ssh rocketgit@rocketgit.com api invalid_cmd $ ssh rocketgit@rocketgit.com api invalid_cmd
 
... ... $ ssh rocketgit@rocketgit.com api invalid_cmd
42 41 <b>Description</b>: List information about a user<br /> <b>Description</b>: List information about a user<br />
43 42 <b>Parameters</b>: user/uid [optional]<br /> <b>Parameters</b>: user/uid [optional]<br />
44 43 Example: Example:
45 <div class="term">
46 $ curl --header 'Authorization: bla this_is_your_api_key' \
44 <div class="term">$ curl --header 'Authorization: bla this_is_your_api_key' \
47 45 --data '{"cmd": "user_info", "user": "bla"}' \ --data '{"cmd": "user_info", "user": "bla"}' \
48 46 @@base_url@@/op/api @@base_url@@/op/api
49 47 $ ssh rocketgit@rocketgit.com api user_info user=bla $ ssh rocketgit@rocketgit.com api user_info user=bla
 
... ... $ ssh rocketgit@rocketgit.com api user_info user=bla
79 77 <b>Description</b>: Lists user defined rights<br /> <b>Description</b>: Lists user defined rights<br />
80 78 <b>Parameters</b>: user/uid [optional]<br /> <b>Parameters</b>: user/uid [optional]<br />
81 79 Example: Example:
82 <div class="term">
83 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
80 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
84 81 --data '{"cmd": "user_rights_list", "user": "bla"}' \ --data '{"cmd": "user_rights_list", "user": "bla"}' \
85 82 @@base_url@@/op/api @@base_url@@/op/api
86 83 $ ssh rocketgit@rocketgit.com api user_rights_list user=bla $ ssh rocketgit@rocketgit.com api user_rights_list user=bla
 
... ... $ ssh rocketgit@rocketgit.com api user_rights_list user=bla
119 116 <b>Description</b>: Lists SSH keys of a user<br /> <b>Description</b>: Lists SSH keys of a user<br />
120 117 <b>Parameters</b>: user/uid [optional]<br /> <b>Parameters</b>: user/uid [optional]<br />
121 118 Example: Example:
122 <div class="term">
123 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
119 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
124 120 --data '{"cmd": "user_ssh_keys_list", "user": "bla"}' \ --data '{"cmd": "user_ssh_keys_list", "user": "bla"}' \
125 121 @@base_url@@/op/api @@base_url@@/op/api
126 122 $ ssh rocketgit@rocketgit.com api user_ssh_keys_list user=bla $ ssh rocketgit@rocketgit.com api user_ssh_keys_list user=bla
 
... ... $ ssh rocketgit@rocketgit.com api user_ssh_keys_list user=bla
154 150 <b>Description</b>: Lists webhooks of a user<br /> <b>Description</b>: Lists webhooks of a user<br />
155 151 <b>Parameters</b>: user/uid [optional]<br /> <b>Parameters</b>: user/uid [optional]<br />
156 152 Example: Example:
157 <div class="term">
158 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
153 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
159 154 --data '{"cmd": "user_wh_list", "user": "bla"}' \ --data '{"cmd": "user_wh_list", "user": "bla"}' \
160 155 @@base_url@@/op/api @@base_url@@/op/api
161 156 $ ssh rocketgit@rocketgit.com api user_wh_list user=bla $ ssh rocketgit@rocketgit.com api user_wh_list user=bla
 
... ... $ ssh rocketgit@rocketgit.com api user_wh_list user=bla
206 201 <a name="repo_list"><b>repo_list</b></a><br /> <a name="repo_list"><b>repo_list</b></a><br />
207 202 <b>Parameters</b>: user/uid [optional]<br /> <b>Parameters</b>: user/uid [optional]<br />
208 203 Example: Example:
209 <div class="term">
210 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
204 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
211 205 --data '{"cmd": "repo_list"}' \ --data '{"cmd": "repo_list"}' \
212 206 @@base_url@@/op/api @@base_url@@/op/api
213 207 $ ssh rocketgit@rocketgit.com api repo_list $ ssh rocketgit@rocketgit.com api repo_list
 
... ... $ ssh rocketgit@rocketgit.com api repo_list
224 218 <b>Description</b>: Shows info about a repository<br /> <b>Description</b>: Shows info about a repository<br />
225 219 <b>Parameters</b>: user/uid [optional], repo/repo_id<br /> <b>Parameters</b>: user/uid [optional], repo/repo_id<br />
226 220 Example: Example:
227 <div class="term">
228 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
221 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
229 222 --data '{"cmd": "repo_info", "repo": "repo1"}' \ --data '{"cmd": "repo_info", "repo": "repo1"}' \
230 223 @@base_url@@/op/api @@base_url@@/op/api
231 224 $ ssh rocketgit@rocketgit.com api repo_info repo=repo1 $ ssh rocketgit@rocketgit.com api repo_info repo=repo1
 
... ... $ ssh rocketgit@rocketgit.com api repo_info repo=repo1
267 260 <b>Description</b>: Lists the bugs<br /> <b>Description</b>: Lists the bugs<br />
268 261 <b>Parameters</b>: user/uid [optional], repo/repo_id<br /> <b>Parameters</b>: user/uid [optional], repo/repo_id<br />
269 262 Example: Example:
270 <div class="term">
271 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
263 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
272 264 --data '{"cmd": "repo_bug_list", "repo": "repo1"}' \ --data '{"cmd": "repo_bug_list", "repo": "repo1"}' \
273 265 @@base_url@@/op/api @@base_url@@/op/api
274 266 $ ssh rocketgit@rocketgit.com api repo_bug_list repo=repo1 $ ssh rocketgit@rocketgit.com api repo_bug_list repo=repo1
 
... ... $ ssh rocketgit@rocketgit.com api repo_bug_list repo=repo1
289 281 <b>Description</b>: Shows information about a bug<br /> <b>Description</b>: Shows information about a bug<br />
290 282 <b>Parameters</b>: user/uid [optional], repo/repo_id, bug_id<br /> <b>Parameters</b>: user/uid [optional], repo/repo_id, bug_id<br />
291 283 Example: Example:
292 <div class="term">
293 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
284 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
294 285 --data '{"cmd": "repo_bug_info", "repo": "repo1", "bug_id": 2}' \ --data '{"cmd": "repo_bug_info", "repo": "repo1", "bug_id": 2}' \
295 286 @@base_url@@/op/api @@base_url@@/op/api
296 287 $ ssh rocketgit@rocketgit.com api repo_bug_info repo=repo1 bug_id=2 $ ssh rocketgit@rocketgit.com api repo_bug_info repo=repo1 bug_id=2
 
... ... $ ssh rocketgit@rocketgit.com api repo_bug_info repo=repo1 bug_id=2
327 318 <b>Description</b>: Lists the merge requests<br /> <b>Description</b>: Lists the merge requests<br />
328 319 <b>Parameters</b>: user/uid [optional], repo/repo_id<br /> <b>Parameters</b>: user/uid [optional], repo/repo_id<br />
329 320 Example: Example:
330 <div class="term">
331 $ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
321 <div class="term">$ curl --header 'Authorization: put_here_your_username this_is_your_api_key' \
332 322 --data '{"cmd": "repo_mr_list", "repo": "repo1"}' \ --data '{"cmd": "repo_mr_list", "repo": "repo1"}' \
333 323 @@base_url@@/op/api @@base_url@@/op/api
334 324 $ ssh rocketgit@rocketgit.com api repo_mr_list repo=repo1 $ ssh rocketgit@rocketgit.com api repo_mr_list repo=repo1
File root/themes/default/doc/demo/container.html changed (mode: 100644) (index 80ddf01..d074945)
1 1 <div class="main_title">Tutorial: @@demo::demo_name@@</div> <div class="main_title">Tutorial: @@demo::demo_name@@</div>
2 2
3 <div class="nav">
4 <span>@@if("@@demo::prev@@" != ""){{<a href="/op/doc/demo/@@demo::demo@@/@@demo::prev@@">Prev page</a>}}{{Prev page}}</span>
5 <span><a href="/op/doc/demo">Back to tutorials list</a></span>
6 <span>@@if("@@demo::next@@" != ""){{<a href="/op/doc/demo/@@demo::demo@@/@@demo::next@@">Next page</a>}}{{Next page}}</span>
7 </div>
8
9 3 <div class="demo_container"> <div class="demo_container">
10 4 <div class="demo_toc"> <div class="demo_toc">
11 5 @@demo::toc@@ @@demo::toc@@
12 6 </div> </div>
13 7
14 8 <div class="demo_content"> <div class="demo_content">
15 @@demo::content@@
16 </div>
17 </div>
9 <div class="nav">
10 @@if("@@demo::prev@@" != ""){{<span><a href="/op/doc/demo/@@demo::demo@@/@@demo::prev@@">⯇ Prev page</a></span>}}
11 <span><a href="/op/doc/demo">⯅ Back to tutorials list</a></span>
12 @@if("@@demo::next@@" != ""){{<span><a href="/op/doc/demo/@@demo::demo@@/@@demo::next@@">⯈ Next page</a></span>}}
13 </div>
14
15 @@demo::content@@
18 16
19 <div class="nav">
20 <span>@@if("@@demo::prev@@" != ""){{<a href="/op/doc/demo/@@demo::demo@@/@@demo::prev@@">Prev page</a>}}{{Prev page}}</span>
21 <span><a href="/op/doc/demo">Back to tutorials list</a></span>
22 <span>@@if("@@demo::next@@" != ""){{<a href="/op/doc/demo/@@demo::demo@@/@@demo::next@@">Next page</a>}}{{Next page}}</span>
17 <div class="nav">
18 @@if("@@demo::prev@@" != ""){{<span><a href="/op/doc/demo/@@demo::demo@@/@@demo::prev@@">⯇ Prev page</a></span>}}
19 <span><a href="/op/doc/demo">⯅ Back to tutorials list</a></span>
20 @@if("@@demo::next@@" != ""){{<span><a href="/op/doc/demo/@@demo::demo@@/@@demo::next@@">⯈ Next page</a></span>}}
21 </div>
22 </div>
23 23 </div> </div>
24 24
File root/themes/default/doc/demo/demos/artifacts/python1/main.html changed (mode: 100644) (index aed441a..470771e)
... ... input <b>bash my_build_script.sh</b>. Finally, click <b>Add</b> button.<br />
106 106 Now, we can go back to terminal, and run: Now, we can go back to terminal, and run:
107 107 <div class="term">git push <div class="term">git push
108 108 </div> </div>
109 <br />
110 109
111 110 If everything went OK, after few minutes, you can check the artifacts area: If everything went OK, after few minutes, you can check the artifacts area:
112 111 go to <b>My repositories</b> in the main menu, find <b>prj1</b> and click go to <b>My repositories</b> in the main menu, find <b>prj1</b> and click
File root/themes/default/doc/demo/demos/ci-1/about/main.html changed (mode: 100644) (index 676139f..4e89e82)
... ... These steps are not covered by this tutorial.<br />
14 14
15 15 Now, we assume you are in the just cloned repository local folder. Now, we assume you are in the just cloned repository local folder.
16 16 We can start with a simple application, stored in file 'main.sh': We can start with a simple application, stored in file 'main.sh':
17 <div class="term">
18 #!/bin/bash
17 <div class="term">#!/bin/bash
19 18
20 19 case "${1}" in case "${1}" in
21 20 a) echo "A" ;; a) echo "A" ;;
 
... ... esac
28 27
29 28 As you can see, it is a simple script. Now, we will add another script, As you can see, it is a simple script. Now, we will add another script,
30 29 'test.sh', that will test our main script: 'test.sh', that will test our main script:
31 <div class="term">
32 #!/bin/bash
30 <div class="term">#!/bin/bash
33 31
34 32 if [ "`./main.sh xx`" != "BAD" ]; then if [ "`./main.sh xx`" != "BAD" ]; then
35 33 echo "Test 'xx' failed!" echo "Test 'xx' failed!"
 
... ... echo "Tests passed!"
46 44 </div> </div>
47 45
48 46 Next, we will add the deploy script, 'deploy.sh': Next, we will add the deploy script, 'deploy.sh':
49 <div class="term">
50 #!/bin/bash
47 <div class="term">#!/bin/bash
51 48
52 49 for s in server1 server2 server3; do for s in server1 server2 server3; do
53 50 rsync -a main.sh ${s}:/usr/local/bin/ rsync -a main.sh ${s}:/usr/local/bin/
File root/themes/default/doc/demo/demos/ci-1/trigger/main.html changed (mode: 100644) (index 26d0483..74e6b42)
... ... You are ready to trigger the hook and see if our first deploy will work.<br />
6 6 Locally, on your computer, we assume you are in the project folder, Locally, on your computer, we assume you are in the project folder,
7 7 where we have the three bash scripts (main.sh, test.sh and deploy.sh). where we have the three bash scripts (main.sh, test.sh and deploy.sh).
8 8 You will have to add, commit and push these files: You will have to add, commit and push these files:
9 <div class="term">
10 chmod a+x *.sh
9 <div class="term">chmod a+x *.sh
11 10 git add *.sh git add *.sh
12 11 git commit -m "First commit" git commit -m "First commit"
13 12 git push origin master git push origin master
 
... ... the text "n/a" will appear.<br />
21 20 <br /> <br />
22 21
23 22 After some time, you will see the following text: After some time, you will see the following text:
24 <div class="term">
25 Worker: Builder 1
23 <div class="term">Worker: Builder 1
26 24 Date (UTC): 2016-07-22 04:30 Date (UTC): 2016-07-22 04:30
27 25 Elapsed time: 133s Elapsed time: 133s
28 26
 
... ... and press 'Edit' button.<br />
51 49 Now, we are ready to push again. Because you changed nothing in the repository, Now, we are ready to push again. Because you changed nothing in the repository,
52 50 the push will succeed but will not trigger the hook. So, just do a fake the push will succeed but will not trigger the hook. So, just do a fake
53 51 change: change:
54 <div class="term">
55
56 echo "Documentation is important" > README
52 <div class="term">echo "Documentation is important" > README
57 53 git add README git add README
58 54 git commit -m "Added README file" git commit -m "Added README file"
59
60 55 </div> </div>
61 56
62 57 Now, we will push again: Now, we will push again:
63 <div class="term">
64 git push origin master
65
58 <div class="term">git push origin master
66 59 </div> </div>
67 60
68 61 Now, the "Last output" row will be: Now, the "Last output" row will be:
69 <div class="term">
70 Worker: Builder 1
62 <div class="term">Worker: Builder 1
71 63 Date (UTC): 2016-07-22 04:41 Date (UTC): 2016-07-22 04:41
72 64 Elapsed time: 141s Elapsed time: 141s
73 65
File root/themes/default/doc/worker.html changed (mode: 100644) (index 9fed3bd..7f9f2f7)
5 5 <div class="island_title">Preparing a virtual machine</div> <div class="island_title">Preparing a virtual machine</div>
6 6 - Install an operating system into a virtual machine.<br /> - Install an operating system into a virtual machine.<br />
7 7 - Inside the virtual machine, edit /etc/rc.d/rc.local (or /etc/rc.local) like this: - Inside the virtual machine, edit /etc/rc.d/rc.local (or /etc/rc.local) like this:
8 <div class="term">
9 #!/bin/bash
8 <div class="term">#!/bin/bash
10 9
11 10 id build > /dev/null id build > /dev/null
12 11 if [ "${?}" != "0" ]; then if [ "${?}" != "0" ]; then
 
... ... while [ 1 ]; do
25 24 done 1>/dev/null 2>&amp;1 < /dev/null &amp; done 1>/dev/null 2>&amp;1 < /dev/null &amp;
26 25 </div> </div>
27 26 and make it executable (and, optionally, restore context): and make it executable (and, optionally, restore context):
28 <div class="term">
29 chmod a+x /etc/rc.d/rc.local
27 <div class="term">chmod a+x /etc/rc.d/rc.local
30 28 restorecon -v /etc/rc.d/rc.local restorecon -v /etc/rc.d/rc.local
31 29 </div> </div>
32 30 </div> </div>
 
... ... restorecon -v /etc/rc.d/rc.local
37 35 - Edit /etc/rocketgit/worker.conf (start with .sample file)<br /> - Edit /etc/rocketgit/worker.conf (start with .sample file)<br />
38 36 - Edit /etc/cron.d/rocketgit: uncomment the worker.sh line<br /> - Edit /etc/cron.d/rocketgit: uncomment the worker.sh line<br />
39 37 Sample worker.conf:<br /> Sample worker.conf:<br />
40 <div class="term">
41 type = user
38 <div class="term">type = user
42 39 user = my_rocketgit.com_user user = my_rocketgit.com_user
43 40 name = Builder 1 name = Builder 1
44 41 master = r1.example.net master = r1.example.net
File root/themes/default/main.css changed (mode: 100644) (index 8110528..dfbdcda)
... ... x.buttons form input[type="submit"], x.buttons form input, x.buttons form select
584 584
585 585
586 586 .nav { .nav {
587 margin-top: 7pt;
588 587 background-color: #ddd; background-color: #ddd;
589 588 padding: 2pt; padding: 2pt;
590 589 } }
590 .nav:not(:first-child) {
591 margin-top: 10pt;
592 }
591 593 .nav span { .nav span {
592 594 padding: 4pt; padding: 4pt;
593 595 } }
 
... ... x.buttons form input[type="submit"], x.buttons form input, x.buttons form select
618 620 font-size: 12pt; font-size: 12pt;
619 621 font-weight: bold; font-weight: bold;
620 622 border-bottom: 1px solid #f00; border-bottom: 1px solid #f00;
621 margin-bottom: 10pt;
623 margin-top: 10pt;
624 margin-bottom: 7pt;
622 625 } }
623 626
624 627
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/rocketgit

Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main