Commit Graph

150 Commits

Author SHA1 Message Date
Denis Gukov
a8921e6e82
Runners (#1458)
* feat(runners): update task status

* feat(config): add remote runner flag

* feat(runners): kill remote job

* feat(runners): update state
2023-09-10 23:18:25 +02:00
Denis Gukov
4a2ff1477b fix(config): merge conflict 2023-09-09 17:07:10 +02:00
Denis Gukov
cffba6e489 refactor(config): add tags to config fields 2023-09-09 17:01:36 +02:00
Denis Gukov
d1b7ad021e
Runners (#1444)
* feat(runners): add register endpoint

* feat(runners): add remote runner

* refactor(runners): move functionality TaskRunner -> AnsibleJobRunner

* fix(runners): init job

* chore(runners): remote unused field

* feat(runners): use external logger from AnsibleJobRunner

* refactor(runners): remove status field

* refactor(runners): remove mutation from job

* feat(runners): pass username and verison to task

* test(runners): fix tests

* fix(runners): params for Run

* feat(runners): implement runner selection

* feat(runners): fill required fields

* fix(runners): session block

* feat(runners): kill process

* refactor(runners): rename fields to public

* feat(runners): remote runner functionallity

* refactor(runners): remove unused class

* fix(runners): send json

* feat(runners): runner registration

* feat(runners): logging

* feat(runners): server <-> running communication works

* feat(runners): pass creds to runenr
2023-08-29 00:51:04 +02:00
Denis Gukov
b5a99eba7f
Runners (#1439)
* refactor(runners): extract jobs to separate entity
2023-08-27 18:02:51 +02:00
Denis Gukov
d32a31f4b6 feat: remove demo mode 2023-08-27 15:00:54 +02:00
AnsibleGuy
07ee77d6db
feat: config-validation - minor fixes 2023-08-06 11:01:24 +02:00
AnsibleGuy
421e862786
feat: added basic config validation, loading all settings from environment-variables, dynamic applying of default-values to settings, tests for config-loading and -validation 2023-08-05 15:56:39 +02:00
Denis Gukov
1145eec9a4 feat(be): add config options 2023-07-24 16:04:03 +02:00
Denis Gukov
9457bf1c02 chore: rename config param 2023-07-23 16:26:36 +02:00
Denis Gukov
e2df7758a1 refactor(be): config struct 2023-07-23 16:18:02 +02:00
Denis Gukov
4f12b70375
Merge pull request #1213 from s3lph/feat-oidc-auth
Implement OIDC authentication
2023-07-08 20:07:50 +02:00
Denis Gukov
81dd70ae1f fix: replace config flag use_external_git to option git_client 2023-04-25 20:04:03 +02:00
s3lph
2896dc72d9 feat(oidc): add config option to manually configure provider endpoints 2023-04-17 22:57:50 +02:00
s3lph
c3cd04fdce feat: implement oidc authentication 2023-04-16 23:57:56 +02:00
Denis Gukov
5b4adb3cea feat: add config flag use_external_git 2023-03-12 21:45:46 +01:00
Denis Gukov
668c81a991 fix(be): use DbConfig getter method instead of direct access to fields 2023-01-28 03:25:25 +04:00
Denis Gukov
d6e1315db7 feat(be): use env vars for db options 2023-01-27 22:59:19 +04:00
Denis Gukov
7bf59cf234 refactor(be): move printing db info to separate method 2022-11-20 01:20:00 +05:00
Loïc Tosser
e72a5a6ee6 Slack alerts 2022-04-11 12:29:48 +04:00
Denis Gukov
b127e054d8 feat(be): add max parallel tasks to project settings and ability to suppress success alerts for tasks 2022-02-14 16:52:28 +05:00
Denis Gukov
a68c64cbaa refactor(be): add method to config 2022-01-26 12:14:56 +05:00
Denis Gukov
9cf52616ec fix(cli): bug with config path parameter 2022-01-24 01:19:22 +05:00
Denis Gukov
315dba69fb feat(be): passing to ansible new variable semaphore_vars 2022-01-20 03:07:30 +05:00
Denis Gukov
1ce8da11e7 chore(fe): remove incomplete ui elements 2022-01-19 03:00:31 +05:00
Denis Gukov
6be09da63c feat: REMOVE PLACEHOLDER USER FUNCTIONALITY 2022-01-19 02:26:48 +05:00
Denis Gukov
4c706f5876 feat(be): add migration for new template and schedule fields 2022-01-19 02:09:42 +05:00
Denis Gukov
458ee316ba feat(be): placeholder user 2021-12-18 18:16:34 +05:00
Denis Gukov
2554afa792 docs(be): comments for config class 2021-12-17 01:56:01 +05:00
Denis Gukov
b839c95573 test(be): register new user tests 2021-12-17 01:44:07 +05:00
Denis Gukov
bee21e34e6 fix(be): postgres password issue 2021-11-02 23:43:56 +05:00
Denis Gukov
89240737a0 feat(fe): ui docs 2021-10-18 17:41:54 +05:00
Denis Gukov
191c6ed438 feat(be): passing semaphore vars via extra vars 2021-10-15 00:14:21 +05:00
Denis Gukov
74b75fca13 refactor(be): add field 'options' for database config 2021-09-22 17:18:40 +05:00
Loïc Tosser
942aa537f5 Secure Email 2021-09-22 07:43:19 +04:00
Denis Gukov
749291a690 feat(be): pass ansible_user/password to ansible-playbook via file 2021-09-12 03:18:26 +05:00
Denis Gukov
7443671059 feat(be): add access key encryption 2021-08-31 04:02:41 +05:00
Denis Gukov
cb5f27d9ed fix(be): migrations for mysql and postgres 2021-08-30 20:11:08 +05:00
Denis Gukov
0b3b56620c refactor(config): add field dialect 2021-08-28 22:03:34 +05:00
Denis Gukov
31a71abf4a refactor(be): add field dialect to config file 2021-08-28 17:04:56 +05:00
Denis Gukov
22e422e15a feat(cli): add user management commands 2021-08-28 16:44:41 +05:00
Denis Gukov
a5a9f0cf0f feat(cli): add env variable SEMAPHORE_CONFIG_PATH 2021-08-28 00:14:20 +05:00
Denis Gukov
d34478499f fix: goss.yaml 2021-08-26 14:39:31 +05:00
Denis Gukov
d27c89790b fix: goss.yaml 2021-08-26 14:38:34 +05:00
Denis Gukov
ddea297ef1 fix(ci): script for docker 2021-08-26 10:24:55 +05:00
Denis Gukov
4c3e2f4383 feat(cli): support arg -config for back compatibility 2021-08-26 01:36:04 +05:00
Denis Gukov
f7f23f999f feat(cli): use cobra library 2021-08-26 01:12:19 +05:00
Denis Gukov
63a4a32ac1 feat: refactor to support postgres 2021-08-24 20:20:34 +05:00
Denis Gukov
8d5c57ea5c feat: support Postgres dialect 2021-08-24 15:51:21 +05:00
Denis Gukov
8d21d8eb20 fix(be): mysql connection string without database name 2021-08-20 10:28:42 +05:00
Denis Gukov
27eab684c2 feat(cli): add arg -useradd for adding user via command line 2021-08-16 02:35:44 +05:00
zeroZshadow
56a7a4132d Move interactive setup to own package
Remove reflex installation for windows
2021-07-15 21:23:59 +01:00
Denis Gukov
b60e927fc6 fix(be): correct sorting for boltdb 2021-06-25 00:53:36 +05:00
Denis Gukov
c607b20b26 feat: remove old ui 2021-05-15 17:59:06 +05:00
Denis Gukov
c0a0e71417 refactor(be): rename db tables prop objects 2021-05-14 00:45:54 +05:00
Denis Gukov
3d6d194d2e feat(be): add Web root URL option description 2021-03-13 01:44:25 +05:00
Denis Gukov
d754eefeae chore(be): remove sqlite 2020-12-04 13:46:02 +05:00
Denis Gukov
0d64b43f18 refactor(be): move util.go to api directory 2020-12-04 13:46:02 +05:00
Denis Gukov
d09fc1d26c feat(be): support sqlite 2020-12-01 21:37:29 +05:00
Denis Gukov
bcfaca5149 feat(web2): support web2 by backend and go-task 2020-11-05 13:59:14 +05:00
Stanislav Simovski
4d28a61b96 Added some comments because linter complained 2019-07-09 20:49:17 +03:00
Stanislav Simovski
09a2b31eb3 mux != Koa, undo refactor before it gets worse 2019-07-09 19:11:01 +03:00
Stanislav Simovski
23d65ba0c2 Refactored all routes to use native mux Middelware 2019-07-09 16:07:16 +03:00
tom whiston
373f3d1e8e add interface variable to settings 2018-05-14 19:43:33 +00:00
tom whiston
17fa7bb407 add gometalinter to tools and run it in circle.
extract some error checking and logging in places where linting needed or errors not checked
2018-04-05 21:24:19 +00:00
Tom Whiston
0316fbc607 bugfix for error scopes in config checking 2018-03-26 11:58:06 +00:00
tom whiston
dd32d8de74 fix port : prefix issues when building config data 2018-03-20 00:28:59 +00:00
Tom Whiston
dd27aba6df Change setup function and config loading
Adds setup question asking where to output config. Defaults to cwd, and if getting cwd produces an error falls back to /etc/semaphore
Make docker autostart default for config
Show default for playbook path
rename semaphore_config.json to config.json
fix pathname for circle
2018-03-15 00:31:27 +01:00
Tom Whiston
3f241054ab add version code generator 2018-03-11 00:05:45 +00:00
Tom Whiston
be97a6a324 remove the need for config init function in bindata and refactor to function called by main 2018-03-05 18:06:24 +01:00
Matej Kramny
56f22f9673
gofmt 2017-08-19 09:45:01 +01:00
Matej Kramny
27d2e3778a
Merge branch 'develop' of https://github.com/TeliaSweden/semaphore into TeliaSweden-develop 2017-08-16 22:50:59 +01:00
Matej Kramny
38294dd248
remove default setup webhost url 2017-07-03 17:07:59 +09:00
Viktor Anderling
8bc1b7f2d2 Allow concurrency for tasks that does not collide
Two different concurrency modes are implemented, and is enabled by
setting "concurrency_mode" in the config file to either "project" or "node".

When "project" concurrency is enabled, tasks will run in parallel if and
only if they do not share the same project id, with no regard to the
nodes/hosts that are affected.

When "node" concurrency is enabled, a task will run in parallel if and
only if the hosts affected by tasks already running does not intersect
with the hosts that would be affected by the task in question.

If "concurrency_mode" is not specified, no task will start before the
previous one has finished.

The collision check is based on the output from the "--list-hosts"
argument to ansible, which uses the hosts specified in the inventory.
Thus, if two different hostnames are used that points to the same node,
such as "127.0.0.1" and "localhost", there will be no collision and two
tasks may connect to the same node concurrently. If this behaviour is
not desired, one should make sure to not include aliases for their hosts
in their inventories when enabling concurrency mode.

To restrict the amount of parallel tasks that runs at the same time, one
can add the "max_parallel_tasks" to the config file. This defaults to a
humble 10 if not specified.
2017-05-29 17:27:56 +02:00
Matej Kramny
624f2c3527 fix for base paths 2017-05-20 16:25:41 +02:00
Matej Kramny
68c5c49fdc base path resources
fixes #350
2017-05-20 16:14:36 +02:00
Matej Kramny
5bcb34ef62 improvements for #287 2017-04-18 15:36:09 +01:00
Anton Markelov
68f5aec9b6 make ldap searched parameters configurable 2017-04-04 22:27:06 +10:00
Anton Markelov
ce4278ae97 merge with actual master 2017-04-04 21:49:00 +10:00
Anton Markelov
65dc565bd0 make go vet happy 2017-03-27 16:57:31 +10:00
Anton Markelov
09edee808e mispell 2017-03-27 16:11:09 +10:00
Anton Markelov
902187167b add ldap settings to the setup process 2017-03-27 15:08:41 +10:00
Anton Markelov
308c1e64ef add simple LDAP authentification to the config and login page 2017-03-27 14:53:00 +10:00
Anton Markelov
d95491d05d add config generation for telegram alerting 2017-03-22 18:44:37 +10:00
Anton Markelov
90d7708647 add basic telegram alerting 2017-03-22 17:22:09 +10:00
Anton Markelov
1e95790197 made changes from review 2017-03-13 12:30:48 +10:00
Anton Markelov
ff31d42cca add new config parameters to the setup procedure 2017-03-10 16:59:29 +10:00
Anton Markelov
4bbedac795 add alert setting for user and (WIP) project 2017-03-10 10:12:55 +10:00
Anton Markelov
31599e01de [WIP] add alerts for failed deploy 2017-02-22 19:06:03 +10:00
Matej Kramny
47a6fe51f1 improve setup
- fix bug with -setup not accepting spaces
- fix pointless panic while decoding cookies
- fix bug generating secure hashes for cookies during setup
2016-05-17 21:17:17 +01:00
Matej Kramny
b2eb39d605 🎉 remove redis dependency
- Remove mandrill
- Remove redis
- Sessions & more transparency into who's logged into your user
- Session is stored in cookies (map of two integers.)
- Encrypted sessions, configurable keys (auto-generated)
2016-04-30 14:28:47 +02:00
Matej Kramny
8fd27ee16b Improved setup formatting 2016-04-30 09:52:33 +02:00
Matej Kramny
697e456802 Upgrade 2016-04-26 19:18:28 +01:00
Matej Kramny
98210da21d Improve setup 2016-04-24 19:11:43 +01:00
Matej Kramny
ab3a33e763 Interactive setup 2016-04-18 01:58:29 +01:00
Matej Kramny
5354d0a645 Print example configuration 2016-04-11 11:30:31 +01:00
Matej Kramny
2e1ad91e7a Running tasks
- Link models with tables
- Basic API to fetch everything
2016-04-07 13:49:34 +01:00
Matej Kramny
ad860ef236 Login working 2016-03-18 23:23:03 +00:00
Matej Kramny
252b4fbe50 Use proper github path 2016-03-16 21:49:43 +00:00
Matej Kramny
90f9295505 Initial v2 work 2016-01-05 00:32:53 +01:00