Skip to content

Commit

Permalink
feat: Initial commit 🎉 (#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
cjorge-graphops authored Jul 10, 2023
1 parent 91c4675 commit d519aa3
Show file tree
Hide file tree
Showing 127 changed files with 16,251 additions and 1 deletion.
74 changes: 74 additions & 0 deletions .cliff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# git-cliff ~ default configuration file
# https://git-cliff.org/docs/configuration
#
# Lines starting with "#" are comments.
# Configuration options are organized into tables and keys.
# See documentation for more information on available options.

[changelog]
# changelog header
header = """
# Changelog\n
All notable changes to this project will be documented in this file.\n
"""
# template for the changelog body
# https://tera.netlify.app/docs
body = """
{% if version %}\
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}\
## [unreleased]
{% endif %}\
{% for group, commits in commits | group_by(attribute="group") %}
### {{ group | upper_first }}
{% for commit in commits %}
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
{% endfor %}
{% endfor %}\n
"""
# remove the leading and trailing whitespace from the template
trim = true
# changelog footer
footer = """
"""

[git]
# parse the commits based on https://www.conventionalcommits.org
conventional_commits = true
# filter out the commits that are not conventional
filter_unconventional = true
# process each line of a commit as an individual commit
split_commits = false
# regex for preprocessing the commit messages
commit_preprocessors = [
# { pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/orhun/git-cliff/issues/${2}))"}, # replace issue numbers
]
# regex for parsing and grouping commits
commit_parsers = [
{ message = "^feat", group = "Features" },
{ message = "^fix", group = "Bug Fixes" },
{ message = "^doc", group = "Documentation" },
{ message = "^perf", group = "Performance" },
{ message = "^refactor", group = "Refactor" },
{ message = "^style", group = "Styling" },
{ message = "^test", group = "Testing" },
{ message = "^chore\\(release\\): prepare for", skip = true },
{ message = "^chore", group = "Miscellaneous Tasks" },
{ body = ".*security", group = "Security" },
]
# protect breaking changes from being skipped due to matching a skipping commit_parser
protect_breaking_commits = false
# filter out the commits that are not matched by commit parsers
filter_commits = false
# glob pattern for matching git tags
tag_pattern = "v[0-9]*"
# regex for skipping tags
skip_tags = "v0.1.0-beta.1"
# regex for ignoring tags
ignore_tags = ""
# sort the tags topologically
topo_order = false
# sort the commits inside sections by oldest/newest order
sort_commits = "oldest"
# limit the number of commits included in the changelog.
# limit_commits = 42
3 changes: 3 additions & 0 deletions .commitlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": ["@commitlint/config-conventional"]
}
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*]
end_of_line = lf
insert_final_newline = true

[*.{json,json5,yml,yaml,cue}]
charset = utf-8
indent_style = space
indent_size = 2
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/.yarn/** linguist-vendored
/.yarn/releases/* binary
/.yarn/plugins/**/* binary
/.pnp.* binary linguist-generated
27 changes: 27 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Bug Report

### Description
Report a bug encountered while operating `launchpad-namespaces`.

### What happened?
Please provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner.

### What did you expect to happen?
A clear and concise description of what you expected to happen.

### Environment
- Operating System:
- Kubernetes Version:
- Helm Version:
- Namespace Affected:
- Any other relevant environment details:

### How can we reproduce it (as minimally and precisely as possible)?
1.
2.

### Possible Solution (optional)
If you have any suggestions on how to fix the bug, please provide them.

### Additional Information (optional)
Any additional information or context that may be helpful in understanding or resolving the issue.
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/new_feature_issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Feature Request

### Description
A clear and concise description of the new feature you are requesting.

### Problem or Motivation
Explain the problem or motivation behind the feature request. What issue or need does it address?

### Expected Benefits
Explain the potential benefits or positive impact that implementing this feature would have.

### Additional Information
Any additional information or context that may be helpful in understanding your feature request.

### Related Issues (optional)
If there are any related issues or pull requests, please mention them here.

### Contribution (optional)
If you are interested in contributing to the development of this feature, please let us know.

### Implementation Suggestions (optional)
If you have any suggestions on how to implement this feature or specific technical considerations, please provide them.

### Other Comments (optional)
Any other comments, ideas, or thoughts you'd like to add.

8 changes: 8 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
### Description
*Add a brief overview of the changes and motivation behind them here*

### Issue link (if applicable)
[Link to issue]()

### Testing
*In case that's relevant, please add a note about if and how these changes were tested*
88 changes: 88 additions & 0 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"github>graphops/renovate-config"
],

"separateMajorMinor": false,

"ignorePaths": [
],

"ignoreDeps": [
],

"enabledManagers": ["regex"],

"regexManagers": [
{
"fileMatch": ["(^|/)helmfile.yaml$"],
"matchStrings": [
".*:\\n[\\s]*?chart:[\\s]?(?<depType>.*)\\/(?<packageName>.*)\\n[\\s]*version:[\\s]?(?<currentValue>[v]?\\d+\\.\\d+\\.\\d+)\\n"
],
"depNameTemplate": "{{{depType}}}/{{{packageName}}}",
"packageNameTemplate": "{{{packageName}}}",
"datasourceTemplate": "helm"
}
],

"packageRules": [
// Group dependency update PRs per namespace
{
"description": "Group dependencies",
"matchPaths": ["*/**"],
"groupName": "{{{ parentDir }}} dependencies",
"groupSlug": "{{{ parentDir }}}"
}

// Helm Chart repositories
{
"matchDepPatterns": "graphops\/.*",
"registryUrls": ["https://graphops.github.io/launchpad-charts"]
},
{
"matchDepPatterns": "ingress-nginx\/.*",
"registryUrls": ["https://kubernetes.github.io/ingress-nginx"]
},
{
"matchDepPatterns": "vouch\/.*",
"registryUrls": ["https://vouch.github.io/helm-charts/"]
},
{
"matchDepPatterns": "jetstack\/.*",
"registryUrls": ["https://charts.jetstack.io"]
},
{
"matchDepPatterns": "prometheus-community\/.*",
"registryUrls": ["https://prometheus-community.github.io/helm-charts"]
},
{
"matchDepPatterns": "deliveryhero\/.*",
"registryUrls": ["https://charts.deliveryhero.io"]
},
{
"matchDepPatterns": "grafana\/.*",
"registryUrls": ["https://grafana.github.io/helm-charts"]
},
{
"matchDepPatterns": "postgres-operator-charts\/.*",
"registryUrls": ["https://opensource.zalando.com/postgres-operator/charts/postgres-operator"]
},
{
"matchDepPatterns": "sealed-secrets\/.*",
"registryUrls": ["https://bitnami-labs.github.io/sealed-secrets"]
},
{
"matchDepPatterns": "openebs\/.*",
"registryUrls": ["https://openebs.github.io/charts"]
},
{
"matchDepPatterns": "openebs-zfs-localpv\/.*",
"registryUrls": ["https://openebs.github.io/zfs-localpv"]
},
{
"matchDepPatterns": "openebs-monitoring\/.*",
"registryUrls": ["https://openebs.github.io/monitoring/"]
}
]
}
51 changes: 51 additions & 0 deletions .github/workflows/make-release-notes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Make Release Notes

on:
workflow_call:
inputs:
tag:
type: string
required: true
description: "What tag to release"

jobs:
changelog:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
ref: "${{ inputs.tag }}"

- name: Configure Git
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor}}@users.noreply.github.com"
- name: Setup node
uses: actions/setup-node@v3

- name: Yarn install
run: |
yarn install
- name: Get namespace
id: namespace
run: |
name="$(echo ${{ inputs.tag }} | sed -E 's/(.*)-v[[:digit:]]+.[[:digit:]]+.[[:digit:]]+/\1/g')"
echo "name=$name" >> $GITHUB_OUTPUT
- name: Generate release notes
env:
NAMESPACE: ${{ steps.namespace.outputs.name }}
run: |
export GIT_CLIFF__GIT__TAG_PATTERN="$NAMESPACE-v*"
export GIT_CLIFF__GIT__IGNORE_TAGS="$NAMESPACE-v[0-9]+.[0-9]+.[0-9]+-.*"
yarn git-cliff -c ".cliff.toml" --include-path "$NAMESPACE/**" -o "RELEASE-NOTES.md" -s all -t "${{ inputs.tag }}"
- uses: actions/upload-artifact@v3
with:
name: "${{ inputs.tag }}.release-notes"
path: RELEASE-NOTES.md
98 changes: 98 additions & 0 deletions .github/workflows/make-release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Make Release

on:
workflow_call:
inputs:
tag:
type: string
required: true
description: "What tag to release?"
workflow_dispatch:
inputs:
tag:
type: string
required: true
description: "What tag to release>"


jobs:
init:
runs-on: ubuntu-latest
permissions:
contents: write # for creating releases
outputs:
name: ${{ steps.parse_tag.outputs.name }}
version: ${{ steps.parse_tag.outputs.version }}
fullversion: ${{ steps.parse_tag.outputs.fullversion }}
prerelease: ${{ steps.parse_tag.outputs.prerelease }}
tag: ${{ steps.parse_tag.outputs.tag }}
steps:
# TODO: build an action leveraging semver (npm), which parses this robustly and offer more outputs
- name: Parse tag
id: parse_tag
run: |
if [ -n "${{ inputs.tag }}" ]; then
tag="${{ inputs.tag }}"
else
tag="${{ github.ref_name }}"
fi
echo "tag=$tag" >> $GITHUB_OUTPUT
name=$(echo "$tag" | sed -r 's/^(.*)-v([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)(-canary.)?([[:digit:]]+)?$/\1/g')
echo "name=$name" >> $GITHUB_OUTPUT
version=$(echo "${{ inputs.tag }}" | sed -r 's/^(.*)-v([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)(-canary.)?([[:digit:]]+)?$/\2/g')
echo "version=$version" >> $GITHUB_OUTPUT
prerelease=$(echo "${{ inputs.tag }}" | sed -r 's/^(.*)-v([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+)(-canary.)?([[:digit:]]+)?$/\4/g')
echo "prerelease=$prerelease" >> $GITHUB_OUTPUT
fullversion=$(echo "${{ inputs.tag }}" | sed -r 's/^(.*)-v([[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-canary\.[[:digit:]]+)?)/\2/g')
echo "fullversion=$fullversion" >> $GITHUB_OUTPUT
call-release-notes:
uses: ./.github/workflows/make-release-notes.yaml
with:
tag: ${{ github.ref_name }}

release:
needs:
- init
- call-release-notes
runs-on: ubuntu-latest
permissions:
contents: write # for creating releases
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor}}@users.noreply.github.com"
- uses: actions/download-artifact@v3
with:
name: "${{ needs.init.outputs.tag }}.release-notes"
path: "."

- name: Generate namespace release
id: release
run: |
tar -czf ${{ needs.init.outputs.tag }}.tar.gz "RELEASE-NOTES.md" "${{ needs.init.outputs.name}}/"
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: "${{ needs.init.outputs.tag }}.release"
path: "${{ needs.init.outputs.tag }}.tar.gz"

- name: Create release
run: |
if [ -z "${{ needs.init.outputs.prerelease }}" ]; then
gh release create -d -t ${{ needs.init.outputs.tag }} --verify-tag -F RELEASE-NOTES.md ${{ needs.init.outputs.tag }} ${{ needs.init.outputs.tag }}.tar.gz
else
gh release create -t ${{ needs.init.outputs.tag }} --verify-tag --prerelease -F RELEASE-NOTES.md ${{ needs.init.outputs.tag }} ${{ needs.init.outputs.tag }}.tar.gz
fi
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading

0 comments on commit d519aa3

Please sign in to comment.