Skip to content

Commit b51b3c0

Browse files
committed
Initial commit
0 parents  commit b51b3c0

File tree

5 files changed

+178
-0
lines changed

5 files changed

+178
-0
lines changed

.github/ISSUE_TEMPLATE/config.yml

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Discussions
4+
url: https://github.com/candiddev/etcha/discussions
5+
about: Join our discussions

.github/workflows/integration.yaml

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: Integration
2+
3+
concurrency:
4+
group: integration_${{ github.ref_name }}
5+
cancel-in-progress: true
6+
7+
env:
8+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
9+
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
10+
11+
on:
12+
pull_request:
13+
push:
14+
branches:
15+
- main
16+
17+
permissions:
18+
contents: write # This is required for actions/checkout and releases
19+
id-token: write # This is required for requesting the JWT
20+
pages: write # This is required for pages
21+
pull-requests: read # This is required for paths-filter
22+
23+
jobs:
24+
dependencies:
25+
name: Update Dependencies
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v3
30+
with:
31+
submodules: true
32+
- name: Setup
33+
uses: ./github/setup
34+
35+
lint:
36+
name: Lint
37+
needs:
38+
- dependencies
39+
runs-on: ubuntu-latest
40+
steps:
41+
- name: Checkout
42+
uses: actions/checkout@v3
43+
with:
44+
submodules: true
45+
- name: Setup
46+
id: setup
47+
uses: ./github/setup
48+
- name: Lint Go
49+
if: steps.setup.outputs.change_go == 'true' || github.ref_name == 'main'
50+
run: ./m lint-go
51+
- name: Lint Hugo
52+
if: steps.setup.outputs.change_hugo == 'true' || github.ref_name == 'main'
53+
run: ./m lint-hugo
54+
- name: Lint Shell
55+
if: steps.setup.outputs.change_shell == 'true' || github.ref_name == 'main'
56+
run: ./m lint-shell
57+
58+
test_go:
59+
name: Test - Go
60+
needs:
61+
- dependencies
62+
runs-on: ubuntu-latest
63+
steps:
64+
- name: Checkout
65+
uses: actions/checkout@v3
66+
with:
67+
submodules: true
68+
- name: Setup
69+
id: setup
70+
uses: ./github/setup
71+
- name: Test Go
72+
if: steps.setup.outputs.change_go == 'true' || github.ref_name == 'main'
73+
run: ./m test-go
74+
75+
release_branch:
76+
env:
77+
BUILD_SOURCE: main
78+
if: github.ref_name == 'main'
79+
name: Release - Branch
80+
needs:
81+
- lint
82+
- test_go
83+
runs-on: ubuntu-latest
84+
steps:
85+
- name: Checkout
86+
uses: actions/checkout@v3
87+
with:
88+
submodules: true
89+
- name: Setup
90+
id: setup
91+
uses: ./github/setup
92+
with:
93+
vault_address: ${{ secrets.VAULT_ADDR }}
94+
vault_role: etcha
95+
- name: Create tag
96+
run: ./m tag
97+
- name: Create release
98+
run: |
99+
./m tag-github-release
100+
./m release
101+
- name: Build hugo
102+
run: ./m build-hugo
103+
- name: Setup Pages
104+
uses: actions/configure-pages@v3
105+
- name: Upload artifact
106+
uses: actions/upload-pages-artifact@v2
107+
with:
108+
path: 'hugo/public'
109+
- name: Deploy to GitHub Pages
110+
id: deployment
111+
uses: actions/deploy-pages@v2

.github/workflows/tag.yaml

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Tag
2+
3+
concurrency:
4+
group: tag_${{ github.ref_name }}
5+
cancel-in-progress: true
6+
7+
env:
8+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
9+
VAULT_ADDR: ${{ secrets.VAULT_ADDR }}
10+
11+
on:
12+
push:
13+
tags:
14+
- v*
15+
16+
permissions:
17+
contents: write # This is required for actions/checkout and releases
18+
id-token: write # This is required for requesting the JWT
19+
pull-requests: read # This is required for paths-filter
20+
21+
jobs:
22+
release:
23+
env:
24+
BUILD_SOURCE: tag
25+
name: Release
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v3
30+
with:
31+
submodules: true
32+
- name: Setup
33+
id: setup
34+
uses: ./github/setup
35+
with:
36+
vault_address: ${{ secrets.VAULT_ADDR }}
37+
vault_role: etcha
38+
- name: Create release
39+
run: |
40+
./m tag-github-release
41+
./m release

README.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# <img alt=logo src=rot.png width=40px> Rot
2+
3+
> Secure Secrets Management for the Modern Sysadmin
4+
5+
[:speech_balloon: Discussions](https://github.com/candiddev/etcha/discussions)\
6+
[:book: Docs](https://etcha.dev/docs/)\
7+
[:arrow_down: Download](https://etcha.dev/docs/guides/install-etcha/)\
8+
[:motorway: Roadmap](https://github.com/orgs/candiddev/projects/6/views/37)
9+
10+
Etcha is a tool for building and running distributed applications.
11+
12+
Etcha simplifies and scales your application delivery:
13+
14+
- Define your configurations in Jsonnet as Patterns
15+
- Lint and test your patterns
16+
- Build your patterns as release artifacts
17+
- Pull your release artifacts from anywhere or push them on demand
18+
- Use webhook and event handlers to dynamically run commands and Patterns
19+
- Access your devices using a secure shell over HTTP
20+
21+
Visit https://etcha.dev for more information.

etcha.png

15 KB
Loading

0 commit comments

Comments
 (0)