Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
ErdemOzgen committed Feb 26, 2024
0 parents commit 83565cf
Show file tree
Hide file tree
Showing 444 changed files with 52,774 additions and 0 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/release-with-tags.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Release
on:
create:
tags:
- '*'

jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21.x

- name: Installing swagger
run: |
go install github.com/go-swagger/go-swagger/cmd/swagger@latest
- name: Set up NodeJS
uses: actions/setup-node@v3
with:
node-version: 16

- name: Set up yarn
run: npm install --global yarn

- name: Check out code
uses: actions/checkout@v3

- name: Yarn install
run: yarn install
working-directory: ui

- name: Build web UI
run: yarn build
working-directory: ui

- name: Copy web assets
run: |
cp ui/dist/*.js ./service/frontend/assets/
cp ui/dist/*.woff ./service/frontend/assets/
cp ui/dist/*.woff2 ./service/frontend/assets/
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{secrets.BLACKDAGGER_SECRET}}
51 changes: 51 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Release

on:
push:
branches:
- main
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21.x

- name: Installing swagger
run: |
go install github.com/go-swagger/go-swagger/cmd/swagger@latest
- name: Set up NodeJS
uses: actions/setup-node@v3
with:
node-version: 16

- name: Set up yarn
run: npm install --global yarn

- name: Check out code
uses: actions/checkout@v3

- name: Yarn install
run: yarn install
working-directory: ui

- name: Build web UI
run: yarn build
working-directory: ui

- name: Copy web assets
run: |
cp ui/dist/*.js ./service/frontend/assets/
cp ui/dist/*.woff ./service/frontend/assets/
cp ui/dist/*.woff2 ./service/frontend/assets/
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{secrets.BLACKDAGGER_SECRET}}
67 changes: 67 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
name: Test
on: [push, pull_request]
jobs:
build:
name: Test
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: 1.21.x

- name: Install Protoc
uses: arduino/setup-protoc@v2

- name: Installing protoc-gen-go
run: |
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
- name: Installing swagger
run: |
go install github.com/go-swagger/go-swagger/cmd/swagger@latest
- name: Set up Nodejs
uses: actions/setup-node@v3
with:
node-version: 16

- name: Set up yarn
run: npm install --global yarn

- name: Check out code
uses: actions/checkout@v3

- name: Yarn install
run: yarn install
working-directory: ui

- name: Build web UI
run: yarn build
working-directory: ui

- name: Copy web assets
run: |
cp ui/dist/*.js ./service/frontend/assets/
cp ui/dist/*.woff ./service/frontend/assets/
cp ui/dist/*.woff2 ./service/frontend/assets/
- name: Cache Go modules
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Build
run: |
mkdir ./bin && protoc -I=./ --go_out=./internal ./internal/proto/*.proto && go build -o ./bin/blackdagger .
- name: Test
run: |
go test -v -coverprofile="coverage.txt" -covermode=atomic ./...
- name: Upload coverage
uses: codecov/codecov-action@v2
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# build
bin/*
dist/
service/frontend/assets/fonts/*
service/frontend/assets/*
!service/frontend/assets/.gitkeep

# NVM
.nvmrc

# tmp files
tmp/*

# MacOS
.DS_Store

# VSCode
.vscode

# Goland
.idea

# certs
cert/*.pem
cert/*.srl
41 changes: 41 additions & 0 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# This is an example .goreleaser.yml file with some sensible defaults.
# Make sure to check the documentation at https://goreleaser.com
before:
hooks:
# You may remove this if you don't use go modules.
- go mod tidy
# you may remove this if you don't need go generate
- go generate ./...
builds:
- dir: .
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
goarch:
- amd64
- arm
- arm64
goarm:
- 7
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'

# brews:
# - repository:
# owner: yohamta
# name: homebrew-tap
# folder: Formula
# homepage: 'https://github.com/erdemozgen/blackdagger'
# description: 'A No-code workflow executor that runs DAGs defined in a simple YAML format'
# license: "GNU General Public License v3.0"

35 changes: 35 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Read the Docs configuration file for Sphinx projects
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

# Required
version: 2

# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
# You can also specify other tool versions:
# nodejs: "20"
# rust: "1.70"
# golang: "1.20"

# Build documentation in the "docs/" directory with Sphinx
sphinx:
configuration: docs/source/conf.py
# You can configure Sphinx to use a different builder, for instance use the dirhtml builder for simpler URLs
# builder: "dirhtml"
# Fail on all warnings to avoid broken references
# fail_on_warning: true

# Optionally build your docs in additional formats such as PDF and ePub
# formats:
# - pdf
# - epub

# Optional but recommended, declare the Python requirements required
# to build your documentation
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
# python:
# install:
# - requirements: docs/requirements.txt
3 changes: 3 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Code of Conduct

We obey the [Go Community Code of Conduct](https://golang.org/conduct).
7 changes: 7 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Contributing
# Contributing to blackdagger

blackdagger is an open source project and we appreciate your contributions!

## Here's the contribution Guide
https://blackdagger.readthedocs.io/en/latest/contrib.html
39 changes: 39 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# syntax=docker/dockerfile:1.4
FROM --platform=$BUILDPLATFORM alpine:latest

ARG TARGETARCH
ARG VERSION=1.0.5
ARG RELEASES_URL="https://github.com/ErdemOzgen/blackdagger/releases"
ARG TARGET_FILE="dagu_${VERSION}_linux_${TARGETARCH}.tar.gz"


ARG USER="blackdagger"
ARG USER_UID=1000
ARG USER_GID=$USER_UID

EXPOSE 8080

RUN <<EOF
#User and permissions setup
apk update
apk add --no-cache sudo tzdata
addgroup -g ${USER_GID} ${USER}
adduser ${USER} -h /home/${USER} -u ${USER_UID} -G ${USER} -D -s /bin/ash
echo ${USER} ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/${USER}
chmod 0440 /etc/sudoers.d/${USER}
EOF

USER blackdagger
WORKDIR /home/blackdagger
RUN <<EOF
export TARGET_FILE="blackdagger_${VERSION}_Linux_${TARGETARCH}.tar.gz"
wget ${RELEASES_URL}/download/v${VERSION}/${TARGET_FILE}
tar -xf ${TARGET_FILE} && rm *.tar.gz
sudo mv blackdagger /usr/local/bin/
mkdir .blackdagger
EOF

ENV blackdagger_HOST=0.0.0.0
ENV blackdagger_PORT=8080

CMD blackdagger server
Loading

0 comments on commit 83565cf

Please sign in to comment.