Skip to content

Commit

Permalink
feat: Initial implementation (#1)
Browse files Browse the repository at this point in the history
* Add .gitignore

* Initial implementation

* Release as

* Push docs using main

* Give permission

---------

Co-authored-by: Victor Colombo <victor.colombo@kurtosistech.com>
  • Loading branch information
victorcolombo and victorcolombo authored Feb 15, 2023
1 parent cade4b6 commit 8a3fd81
Show file tree
Hide file tree
Showing 771 changed files with 141,393 additions and 0 deletions.
1,279 changes: 1,279 additions & 0 deletions .circleci/config.yml

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/default-issue.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Default Issue
about: Default issue, from https://www.notion.so/kurtosistech/Ticket-format-8588b73d30e042489458acc9695756c1
title: ''
labels: ''
assignees: ''

---

<!-- from https://www.notion.so/kurtosistech/Ticket-format-8588b73d30e042489458acc9695756c1 -->
<!-- Example issue: https://github.com/kurtosis-tech/kurtosis/issues/828 -->
<!-- NOTE: not all issues merit the time to fill these! -->

## Problem
TODO (what's the pain)

## Background
TODO (why are we doing this, if known/relevant)

## Solution
TODO (how we'll do this, if known/relevant)

## Result
TODO (final state; the outcome of this ticket)
11 changes: 11 additions & 0 deletions .github/remove_trailing_space.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# This is used by the pr-description-update action
# to trim trailing newlines and spaces in pr descriptions

import sys

def remove():
line = sys.argv[1]
return line.strip()

if __name__ == "__main__":
print(remove())
26 changes: 26 additions & 0 deletions .github/workflows/change-versions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Change versions
on:
pull_request:
types: [opened, synchronize, reopened]
paths:
- "version.txt"
jobs:
change_version:
if: contains(github.head_ref, 'release-please')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: "${{ secrets.RELEASER_TOKEN }}"
- run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kudet
name: Install Kudet
- name: Change versions
run: |
api/scripts/update-package-versions.sh "$(cat version.txt)"
api/scripts/update-own-version-constants.sh "$(cat version.txt)"
- uses: stefanzweifel/git-auto-commit-action@v4
with:
token: "${{ secrets.RELEASER_TOKEN }}"
25 changes: 25 additions & 0 deletions .github/workflows/conventional-pr-title-checker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Check PR title for conventional commits
name: Check PR title
on:
pull_request_target:
types:
- opened
- reopened
- edited
- synchronize

# cancel redundant builds
concurrency:
group: "title-checker-${{ github.head_ref }}"
cancel-in-progress: true

jobs:
title_check:
runs-on: ubuntu-latest
permissions:
statuses: write
steps:
- uses: aslafy-z/conventional-pr-title-action@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

92 changes: 92 additions & 0 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# This document explains why this runs on GitHub over Circle
# https://www.notion.so/kurtosistech/Why-we-have-our-Linter-as-a-Github-Action-572b44c4a9b445009515b7b41d5f74ff
# we use `skip-pkg-cache:true` as we run into https://github.com/golangci/golangci-lint-action/issues/244 if we don't

name: Golang Lint

# We only want one run of this on a branch
# if you push another commit the previous run should cancel
concurrency:
group: "go-linter-${{ github.head_ref }}"
cancel-in-progress: true

on:
pull_request:

jobs:
golangci:
name: golang-lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v3
with:
go-version: 1.18
- uses: actions/checkout@v3
# Install kudet
- run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kudet
# Generate versions
- run: scripts/generate-kurtosis-version.sh
- name: Configure git for private modules
env:
RELEASER_TOKEN: ${{ secrets.RELEASER_TOKEN }}
run: git config --global url."https://${RELEASER_TOKEN}@github.com/".insteadOf "https://github.com/"
- run: go env -w "GOPRIVATE=github.com/kurtosis-tech/*"
- name: lint-container-engine-lib
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: container-engine-lib/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-api-golang
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: api/golang/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-core-server
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: core/server
args: --timeout=3m
skip-pkg-cache: true
- name: lint-core-launcher
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: core/launcher/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-engine-server
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: engine/server/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-engine-launcher
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: engine/launcher/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-internal-test-suites
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: internal_testsuites/golang/
args: --timeout=3m
skip-pkg-cache: true
- name: lint-cli
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
working-directory: cli/cli/
args: --timeout=3m
skip-pkg-cache: true
53 changes: 53 additions & 0 deletions .github/workflows/pr-description-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "Update Pull Request Description with conventional commits"
on:
pull_request:
types:
- opened
- reopened
- edited
- synchronize

# cancel redundant builds
concurrency:
group: "update-pr-${{ github.head_ref }}"
cancel-in-progress: true

jobs:
update_pr:
if: contains(github.head_ref, 'release-please') != true
runs-on: ubuntu-latest
steps:
- uses: 8BitJonny/gh-get-current-pr@2.2.0
with:
sha: ${{ github.event.pull_request.head.sha }}
id: PR
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: |
pr_body=$(cat << EOF
${{ steps.PR.outputs.pr_body }}
EOF
)
delimiter="Changelog picked up from commits here:"
cleaned_body="${pr_body%${delimiter}*}"
cleaned_body_without_trailing_space="$(python .github/remove_trailing_space.py "${cleaned_body}")"
conventional_commits="$(git log --pretty=format:"%B" origin/master..HEAD | grep -Pio '^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|¯\\_\(ツ\)_\/¯)(\(\w+\)?((?=:\s)|(?=!:\s)))?(!)?(:\s.*)?(\n\n.*)?$' | grep ':' || true)"
echo "CONVENTIONAL_COMMITS<<EOF" >> $GITHUB_ENV
echo "${cleaned_body_without_trailing_space}" >> ${GITHUB_ENV}
if [ ${#conventional_commits} -gt 0 ]; then
echo "" >> ${GITHUB_ENV}
echo "${delimiter}" >> ${GITHUB_ENV}
echo "" >> ${GITHUB_ENV}
echo "${conventional_commits}" >> $GITHUB_ENV
fi
echo 'EOF'>> $GITHUB_ENV
- uses: tzkhan/pr-update-action@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
# added this though it isn't used
base-branch-regex: '[a-z\d-_.\\/]+'
body-template: |
${{ env.CONVENTIONAL_COMMITS }}
body-update-action: 'replace'
body-uppercase-base-match: false
32 changes: 32 additions & 0 deletions .github/workflows/push-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Deploy documentation


on:
push:
branches: ["main"]

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
name: Publish to Cloudflare Pages
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Append changelog
run: cat CHANGELOG.md >> docs/docs/changelog.md
- name: Yarn Install
run: yarn --cwd ./docs install
- name: Yarn Build
run: yarn --cwd ./docs build

- name: Publish to Cloudflare Pages
uses: cloudflare/pages-action@v1
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: ${{ secrets.CLOUDFLARE_PROJECT_NAME }}
directory: docs/build/
24 changes: 24 additions & 0 deletions .github/workflows/release-please.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
on:
push:
branches: [main]

name: release-please
jobs:
release-please:
name: "Release please"
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v3
with:
# We use the RELEASER_TOKEN so that the GitHub Actions
# can run on the PR created
# https://github.com/kurtosis-tech/kurtosis/issues/688
token: "${{ secrets.RELEASER_TOKEN }}"
release-type: simple
package-name: kurtosis
bump-minor-pre-major: true
bump-patch-for-minor-pre-major: true
# Our CI, Docker Images, Kurtosis-SDK bumps all depend on
# non v tags
include-v-in-tag: false
release-as: 0.66.8
97 changes: 97 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Ignoring the file that gets generated with the repo's version
/kurtosis_version/kurtosis_version.go

# IntelliJ
.idea
*.iws
*.iml
*.ipr

# VS Code
*.vscode

# Jenv
.java-version

# Pyenv
.python-version

# Mac spotlight index files
.DS_Store

*.un~
Session.vim
.netrwhist
*~
*.pyc
*.pydevproject
.project
.metadata
bin/**
tmp/**
tmp/**/*
*.tmp
*.bak
*~.nib
local.properties
.classpath
.settings/
.loadpath

# Vim swapfiles
*.swp

# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Archive files
*.tgz
*.zip

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# PDT-specific
.buildpath

# Ignore Vim helptags
doc/tags

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

# Test binary, built with `go test -c`
*.test


# Output directories
build/
dist/
cli/cli/scripts/completions/

# Java
.gradle

# Node
node_modules
yarn-error.log

# Bazel
/bazel-*

# Typescript
tsconfig.tsbuildinfo

# Generated files
.docusaurus
.cache-loader
5 changes: 5 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
linters:
enable:
- exhaustruct
max-issues-per-linter: 0
sort-results: true
Loading

0 comments on commit 8a3fd81

Please sign in to comment.