Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
17f9956
Bump elliptic from 6.5.1 to 6.5.3 in /web
dependabot[bot] Jul 30, 2020
2982c83
Bump prismjs from 1.17.1 to 1.21.0 in /web
dependabot[bot] Aug 7, 2020
b85e582
Bump node-sass from 4.12.0 to 4.13.1 in /web
dependabot[bot] Sep 4, 2020
1eee564
Bump http-proxy from 1.17.0 to 1.18.1 in /web
dependabot[bot] Sep 7, 2020
2fc8818
Bump highlight.js from 9.15.10 to 10.4.1 in /web
dependabot[bot] Dec 4, 2020
be55309
Merge pull request #15 from betterde/dependabot/npm_and_yarn/web/high…
jinrenjie Dec 5, 2020
cdfb423
Merge pull request #13 from betterde/dependabot/npm_and_yarn/web/http…
jinrenjie Dec 5, 2020
2f90fb4
Merge pull request #12 from betterde/dependabot/npm_and_yarn/web/node…
jinrenjie Dec 5, 2020
86dcf0d
Merge pull request #10 from betterde/dependabot/npm_and_yarn/web/pris…
jinrenjie Dec 5, 2020
05e0330
Bump lodash from 4.17.15 to 4.17.20 in /web
dependabot[bot] Dec 5, 2020
2fce5f1
Merge pull request #9 from betterde/dependabot/npm_and_yarn/web/ellip…
jinrenjie Dec 5, 2020
ce24ccc
Merge pull request #16 from betterde/dependabot/npm_and_yarn/web/loda…
jinrenjie Dec 5, 2020
245bcc7
Bump ini from 1.3.5 to 1.3.7 in /web
dependabot[bot] Dec 11, 2020
a21f263
Merge pull request #18 from betterde/dependabot/npm_and_yarn/web/ini-…
jinrenjie Dec 11, 2020
99d09f5
Bump axios from 0.18.1 to 0.21.1 in /web
dependabot[bot] Jan 5, 2021
58337e2
Bump prismjs from 1.21.0 to 1.23.0 in /web
dependabot[bot] Mar 1, 2021
fc4f1af
Bump elliptic from 6.5.3 to 6.5.4 in /web
dependabot[bot] Mar 9, 2021
eb78b40
Bump y18n from 3.2.1 to 3.2.2 in /web
dependabot[bot] Mar 30, 2021
49d4a4a
Bump url-parse from 1.4.7 to 1.5.1 in /web
dependabot[bot] May 7, 2021
cf3dadb
Bump lodash from 4.17.20 to 4.17.21 in /web
dependabot[bot] May 8, 2021
b3fd714
Bump hosted-git-info from 2.8.4 to 2.8.9 in /web
dependabot[bot] May 10, 2021
f578351
Merge pull request #26 from betterde/dependabot/npm_and_yarn/web/host…
jinrenjie May 21, 2021
88aa7e3
Merge pull request #25 from betterde/dependabot/npm_and_yarn/web/loda…
jinrenjie May 21, 2021
477f949
Merge pull request #20 from betterde/dependabot/npm_and_yarn/web/axio…
jinrenjie May 21, 2021
94bad03
Merge pull request #21 from betterde/dependabot/npm_and_yarn/web/pris…
jinrenjie May 21, 2021
080b533
Merge pull request #24 from betterde/dependabot/npm_and_yarn/web/url-…
jinrenjie May 21, 2021
cbb6480
Merge pull request #23 from betterde/dependabot/npm_and_yarn/web/y18n…
jinrenjie May 21, 2021
88d8fcd
Merge pull request #22 from betterde/dependabot/npm_and_yarn/web/elli…
jinrenjie May 21, 2021
d7baa71
Bump dns-packet from 1.3.1 to 1.3.4 in /web
dependabot[bot] May 27, 2021
6e50ea4
Bump prismjs from 1.23.0 to 1.24.0 in /web
dependabot[bot] Jun 28, 2021
1c29c29
Merge pull request #28 from betterde/dependabot/npm_and_yarn/web/pris…
jinrenjie Jul 9, 2021
2403af5
Merge pull request #27 from betterde/dependabot/npm_and_yarn/web/dns-…
jinrenjie Jul 9, 2021
a81e036
Bump yargs-parser from 5.0.0 to 5.0.1 in /web
dependabot[bot] Jul 9, 2021
e2f58e0
Merge pull request #29 from betterde/dependabot/npm_and_yarn/web/yarg…
jinrenjie Jul 9, 2021
5dde9fd
Bump path-parse from 1.0.6 to 1.0.7 in /web
dependabot[bot] Aug 10, 2021
06da9cd
Bump prismjs from 1.24.0 to 1.25.0 in /web
dependabot[bot] Sep 20, 2021
0224c63
Merge pull request #31 from betterde/dependabot/npm_and_yarn/web/pris…
jinrenjie Sep 24, 2021
d8126ae
Merge pull request #30 from betterde/dependabot/npm_and_yarn/web/path…
jinrenjie Sep 24, 2021
a8cd50a
Bump axios from 0.21.1 to 0.21.2 in /web
dependabot[bot] Sep 24, 2021
6c7ed90
Bump url-parse from 1.5.1 to 1.5.3 in /web
dependabot[bot] Sep 24, 2021
a158fbe
Merge pull request #33 from betterde/dependabot/npm_and_yarn/web/url-…
jinrenjie Sep 24, 2021
5a85326
Merge pull request #32 from betterde/dependabot/npm_and_yarn/web/axio…
jinrenjie Sep 24, 2021
83d2871
Bump terser from 4.3.1 to 4.8.1 in /web
dependabot[bot] Jul 20, 2022
f6473de
minor: optimize code
jinrenjie Sep 16, 2022
d5cc17f
minor: replace the we chat pay image
jinrenjie Sep 16, 2022
210eb5a
minor: optimize github action config
jinrenjie Sep 16, 2022
a943022
Merge pull request #44 from betterde/develop
jinrenjie Sep 16, 2022
3e8a688
Bump decode-uri-component from 0.2.0 to 0.2.2 in /web
dependabot[bot] Dec 3, 2022
838bcf5
Bump qs from 6.5.2 to 6.5.3 in /web
dependabot[bot] Dec 8, 2022
d2c16ec
minor: optimize shell exec logic to support windows
jinrenjie Dec 29, 2022
87afc81
minor: modify the copyright year range
jinrenjie Dec 29, 2022
2ef690d
Merge pull request #49 from betterde/develop
jinrenjie Dec 29, 2022
067f3b5
typo: fix github action ci config typo
jinrenjie Dec 29, 2022
1bad2e3
Merge pull request #51 from betterde/develop
jinrenjie Dec 29, 2022
6db930c
minor: change exec npm path
jinrenjie Dec 29, 2022
590b095
Merge pull request #52 from betterde/develop
jinrenjie Dec 29, 2022
6d90c8d
minor: upgrade package version and optimize api response
jinrenjie Dec 29, 2022
eba0c04
minor: fix typo
jinrenjie Dec 29, 2022
3a95192
Merge branch 'master' into develop
jinrenjie Dec 29, 2022
c5620be
Merge pull request #53 from betterde/develop
jinrenjie Dec 29, 2022
f21b9ae
Bump follow-redirects from 1.5.10 to 1.15.2 in /web
dependabot[bot] Dec 29, 2022
146c7f7
minor: optimize ci config
jinrenjie Dec 29, 2022
95371bf
Merge pull request #55 from betterde/develop
jinrenjie Dec 29, 2022
770d300
minor: optimize ci config
jinrenjie Dec 29, 2022
7fbd579
Merge branch 'develop'
jinrenjie Dec 29, 2022
1569b10
minor: optimize ci config
jinrenjie Dec 29, 2022
53348f7
Merge branch 'develop'
jinrenjie Dec 29, 2022
493ce00
minor: optimize ci config
jinrenjie Dec 29, 2022
eb03191
Merge branch 'develop'
jinrenjie Dec 29, 2022
c37ef68
minor: optimize build status badge
jinrenjie Dec 29, 2022
18a89be
Merge pull request #56 from betterde/develop
jinrenjie Dec 29, 2022
025e0f2
build(deps): bump http-cache-semantics from 4.1.0 to 4.1.1 in /web
dependabot[bot] Feb 4, 2023
2910cc7
minor: delete todo list item
jinrenjie Jul 20, 2023
15fc8be
Merge branch 'master' into develop
jinrenjie Jul 20, 2023
5e26f0d
Merge branch 'master' of github.com:betterde/ects
jinrenjie Jul 20, 2023
7f9ca4f
major: replace go-bindata using go embed
jinrenjie Nov 1, 2023
8cf9b58
Merge branch 'develop'
jinrenjie Nov 1, 2023
ccc13ba
Merge pull request #57 from betterde/dependabot/npm_and_yarn/web/http…
jinrenjie Nov 2, 2023
87c0ee8
Merge pull request #54 from betterde/dependabot/npm_and_yarn/web/foll…
jinrenjie Nov 2, 2023
60a5cab
Merge pull request #46 from betterde/dependabot/npm_and_yarn/web/qs-6…
jinrenjie Nov 2, 2023
d2c6dc3
Merge pull request #45 from betterde/dependabot/npm_and_yarn/web/deco…
jinrenjie Nov 2, 2023
f7c48c3
Merge pull request #43 from betterde/dependabot/npm_and_yarn/web/ters…
jinrenjie Nov 2, 2023
bd2eea8
minor: upgrade front-end dependencies
jinrenjie Nov 2, 2023
a7d8874
Merge branch 'develop'
jinrenjie Nov 2, 2023
17471f5
minor: remove the go-bindata action of the workflow config
jinrenjie Nov 2, 2023
fb83ba0
Merge branch 'develop'
jinrenjie Nov 2, 2023
7b0657d
minor: upgrade front-end dependencies
jinrenjie Nov 2, 2023
cfd03b5
Merge branch 'develop'
jinrenjie Nov 2, 2023
e63bd79
minor: modify go mod version
jinrenjie Nov 2, 2023
0874647
Merge branch 'develop'
jinrenjie Nov 2, 2023
cd9154d
minor: remove debugging code
jinrenjie Nov 2, 2023
db16464
Merge branch 'develop'
jinrenjie Nov 2, 2023
3ae9dd8
minor: optimize style
Feb 2, 2024
35add90
minor: add star history to readme
jinrenjie May 28, 2024
2916faa
feat: fix issue and optimize build action
jinrenjie Mar 12, 2025
6d418f1
chore: fix ci config
jinrenjie Mar 12, 2025
74f5a2c
refactor: replace iris web framework with fiber
jinrenjie Mar 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.idea/
out/
builds/
web/cert
web/dist
web/node_modules
web/bindata.go
web/docs
spa/cert
spa/dist
spa/node_modules
spa/bindata.go
spa/docs
45 changes: 28 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,35 @@
name: Build ECTS

on:
push:
branches:
- master
pull-request:
branches:
- master
release:
types: [published]

jobs:
build:
name: Build ECTS
docker:
runs-on: ubuntu-latest
steps:
- name: Build assets
run: sudo apt-get -y nodejs && npm install && npm run build
- name: Packaging assets
run: cd ../ && go get -u github.com/shuLhan/go-bindata/... && go-bindata -pkg web -o web/bindata.go web/dist/...
- name: Build ECTS application
run: |
GO111MODULE=on go ge
GO111MODULE=on GOOS=darwin go build -ldflags "-s -w" -o "bin/ects_darwin" main.go
GO111MODULE=on GOOS=linux go build -ldflags "-s -w" -o "bin/ects_linux" main.go
- name: Checkout
uses: actions/checkout@v3
- name: Get Release Version
run: echo "VERSION=${{ github.event.release.tag_name }}" >> $GITHUB_ENV
- name: Get Current Time
run: echo "BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV
- name: Get Current Time
run: echo "GIT_COMMIT=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: betterde/ects:latest,betterde/ects:${{ env.VERSION }}
context: .
platforms: linux/amd64,linux/arm64
build-args: VERSION=${{ env.VERSION }} BUILD_TIME=${{ env.BUILD_TIME }} GIT_COMMIT=${{ env.GIT_COMMIT }}
49 changes: 32 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,33 +1,48 @@
# 构建前端静态资源
FROM alpine:latest AS web
ARG NODEJS_VERSION=10.16.3-r0
ARG YARN_VERSION=1.17.3
FROM alpine:3.18 AS web
ARG YARN_VERSION=1.22.19-r0
ARG NODEJS_VERSION=18.20.1-r0
RUN apk update && \
apk add nodejs=${NODEJS_VERSION} nodejs-npm=${NODEJS_VERSION} && \
npm config set unsafe-perm true && \
npm install --global yarn@${YARN_VERSION}
ADD web /web
apk add nodejs=${NODEJS_VERSION} yarn=${YARN_VERSION}
ADD spa /web
WORKDIR /web
RUN yarn && yarn build

# 构建后端可执行文件
FROM golang:1.13.0-alpine3.10 AS binary
FROM golang:1.22-alpine3.18 AS binary

ARG VERSION=0.6.2

ADD . /go/src/ects
WORKDIR /go/src/ects
COPY --from=web /web/dist /go/src/ects/web/dist
COPY --from=web /spa/dist /go/src/ects/web/dist
RUN apk update && \
apk add --no-cache git && \
cd $GOPATH/src && \
go get -u github.com/shuLhan/go-bindata/... && \
cd $GOPATH/src/ects && \
go-bindata -pkg web -o web/bindata.go web/dist/...
apk add --no-cache git
RUN go mod tidy && \
GOOS=linux go build -ldflags "-s -w" -o "bin/ects_linux" main.go
BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ") && \
GIT_COMMIT=$(git rev-parse HEAD) && \
CGO_ENABLED=0 GOOS=linux go build -ldflags "-s -w -X github.com/betterde/ects/internal/build.Version=${VERSION} -X github.com/betterde/ects/internal/build.Build=${BUILD_TIME} -X github.com/betterde/ects/internal/build.Commit=${GIT_COMMIT}" -o "bin/ects_linux" main.go

# 构建运行环境
FROM alpine:3.10
MAINTAINER George "george@betterde.com"
FROM alpine:3.18

ARG VERSION=0.6.2

LABEL org.opencontainers.image.url="https://betterde.github.io/ects"
LABEL org.opencontainers.image.titile="ECTS"
LABEL org.opencontainers.image.vendor="Betterde Inc."
LABEL org.opencontainers.image.source="https://github.com/betterde/ects"
LABEL org.opencontainers.image.version="${VERSION}"
LABEL org.opencontainers.image.authors="George <george@betterde.com>"
LABEL org.opencontainers.image.created="2024-08-21 20:35:00"
LABEL org.opencontainers.image.licenses="MIT"
LABEL org.opencontainers.image.description="Elastic Crontab System"
LABEL org.opencontainers.image.documentation="https://betterde.github.io/ects"

COPY --from=binary /go/src/ects/bin/ects_linux /usr/local/bin/ects

HEALTHCHECK --interval=60s CMD curl http://localhost/ || exit 1

EXPOSE 9701
CMD ["master"]
ENTRYPOINT ["/usr/local/bin/ects"]
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2017–2019 Betterde Inc.
Copyright (c) 2017–2023 Betterde Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@ test:

build:
cd web && yarn build
go-bindata -pkg web -o web/bindata.go web/dist/...
GOOS=darwin go build -ldflags "-s -w" -o "bin/$(BINARY_NAME)_darwin" main.go
GOOS=linux go build -ldflags "-s -w" -o "bin/$(BINARY_NAME)_linux" main.go
GOOS=windows go build -ldflags "-s -w" -o "bin/$(BINARY_NAME)_windows" main.go

install:
cd web && yarn install
go get -u github.com/shuLhan/go-bindata/...

clean:
go clean -testcache
Expand Down
22 changes: 8 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
![dashboard](web/docs/.vuepress/public/logo.png)
![dashboard](spa/docs/.vuepress/public/logo.png)

[![Build Status](https://www.travis-ci.org/betterde/ects.svg?branch=master)](https://www.travis-ci.org/betterde/ects)
[![Build Status](https://github.com/betterde/ects/actions/workflows/ci.yml/badge.svg)](https://github.com/betterde/ects/actions/workflows/ci.yml/badge.svg)
[![GitHub issues](https://img.shields.io/github/issues/betterde/ects)](https://github.com/betterde/ects/issues)
[![GitHub forks](https://img.shields.io/github/forks/betterde/ects)](https://github.com/betterde/ects/network)
[![GitHub stars](https://img.shields.io/github/stars/betterde/ects)](https://github.com/betterde/ects/stargazers)
Expand All @@ -10,7 +10,7 @@ Elastic Crontab System 是基于 ETCD 实现的分布式定时任务管理系统

## 架构设计

![dashboard](web/docs/.vuepress/public/architecture.png)
![dashboard](spa/docs/.vuepress/public/architecture.png)

## 源码安装

Expand All @@ -24,12 +24,6 @@ $ cd web && yarn install
# 打包前端资源
$ yarn build

# 安装打包静态资源到二进制的工具
$ cd ../ && go get -u github.com/shuLhan/go-bindata/...

# 打包静态资源
$ go-bindata -pkg web -o web/bindata.go web/dist/...

# 编译
$ go build -o ects main.go
```
Expand All @@ -49,18 +43,18 @@ $ go build -o ects main.go
- [x] 基于 ETCD 的服务注册于发现;
- [x] 基于 ETCD 的流水线发布于订阅;
- [x] 基于 ETCD 实现的分布式锁,用于更新 Worker 节点的状态;
- [x] 实现 Mail 任务执行器;
- [x] 实现 HTTP 任务执行器;
- [x] 实现 Hook 任务执行器;
- [x] 集成单元测试;
- [x] 集成 Docker 部署;
- [x] 集成 CI;
- [x] 项目文档;
- [] 热重启;
- [] 软件更新;
- [] 角色权限管理模块。

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=betterde/ects&type=Date)](https://star-history.com/#betterde/ects&Date)

## 赞助商

[![jetbrains](web/docs/.vuepress/public/jetbrains.svg)](https://www.jetbrains.com/?from=ects)
[![jetbrains](spa/docs/.vuepress/public/jetbrains.svg)](https://www.jetbrains.com/?from=ects)

Loading