Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jsnjack/wakeci
Task automation
https://github.com/jsnjack/wakeci
automation build-automation ci continuous-integration cron cronscheduler go golang hacktoberfest task-runner
Last synced: about 1 month ago
JSON representation
Task automation
- Host: GitHub
- URL: https://github.com/jsnjack/wakeci
- Owner: jsnjack
- Created: 2019-06-16T21:34:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-11-07T16:56:32.000Z (about 1 month ago)
- Last Synced: 2024-11-07T17:44:55.292Z (about 1 month ago)
- Topics: automation, build-automation, ci, continuous-integration, cron, cronscheduler, go, golang, hacktoberfest, task-runner
- Language: Go
- Homepage:
- Size: 2.99 MB
- Stars: 114
- Watchers: 5
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-repositories - jsnjack/wakeci - Task automation (Go)
README
# wakeci
### What is it?
wakeci is an automation tool which helps to execute repetitive tasks
![ScreenShot](https://raw.githubusercontent.com/jsnjack/wakeci/master/screenshots/feed.png)
### Features
- simple job configuration using YAML files with Ansible inspired syntax
- easy to install - just download a binary file from Releases
- automatic Let's Encrypt SSL certificates
- parameterized builds, artifacts, intervals and timeouts - see job configuration example below
- no plugins, no extensive configuration - focus on your project instead!### Job configuration example
> See full description [here](https://github.com/jsnjack/wakeci/blob/master/src/frontend/src/assets/configDescription.yaml)
```yaml
desc: Build and release wake application
params:
- VERSION: mastertasks:
- name: Clone repository
run: git clone [email protected]:jsnjack/wakeci.git --recursive- name: Checkout version
run: sh ${WAKE_CONFIG_DIR}utils/checkout.sh wakeci ${VERSION}- name: Install npm dependencies
run: cd wakeci/src/frontend && npm install- name: Build application
run: cd wakeci && make build- name: Create a release on github
run: python ${WAKE_CONFIG_DIR}utils/release_on_github.py -f wakeci/bin/wakeci -r jsnjack/wakeci -t "v`cd wakeci && monova`"timeout: 10m
on_failed:
- name: Send notification to Slack
run: >-
python ${WAKE_CONFIG_DIR}utils/notify_slack.py
-t "Job ${WAKE_JOB_NAME} has failed <${WAKE_URL}build/${WAKE_BUILD_ID}|#${WAKE_BUILD_ID}>"
-k erroron_finished:
- name: Send notification to Slack
run: >-
python ${WAKE_CONFIG_DIR}utils/notify_slack.py
-t "New wake version `cd wakeci && monova` <${WAKE_URL}build/${WAKE_BUILD_ID}|#${WAKE_BUILD_ID}>"
-k ok
```### How to use it?
```
Usage of ./bin/wakeci:
-compactdb
Reclaim space in the database which is no longer used
-config string
Configuration file location (default "Wakefile.yaml")
```#### Wakefile.yaml format
```
# Port to start the server on (default "8081")
port: 8081
# Hostname for autocert. Active only when port is 443
hostname: ""
# Working directory (default ".wakeci/")
workdir: ./wakeci
# Configuration directory - all your job files (default "./")
jobdir: ./
# Path to the file with secrets
secretsfile: ./secrets.yaml
```> Default password is `admin`. Don't forget to immediately change it!
### API documentation
See full description [here](https://github.com/jsnjack/wakeci/blob/master/API.md)
### Development
Requires golang 1.18+
#### How to install golang 1.18+
```bash
go get golang.org/dl/go1.18.2
/home/$USER/go/bin/go1.18.2 download
# Manage different versions with `alternatives`
sudo alternatives --install /usr/bin/go go /home/$USERNAME/go/bin/go1.18.2 10
# Switch between different go versions
sudo alternatives --config go
```> Golang downloads page https://golang.org/dl/
#### Install dependencies
```bash
sudo dnf install entr
go install github.com/swaggo/swag/cmd/swag@latest# cd src/frontend
npm install
```#### Start application
```bash
# frontend
make runf# backend
make runb
```#### Update all outdated npm packages
```bash
npm outdated --json | jq -r 'keys[]' | xargs -I % npm i %@latest --save
```#### Update all outdated go packages
```bash
GOWORK=off go-mod-upgrade
```