diff --git a/.github/.kodiak.toml b/.github/.kodiak.toml new file mode 100644 index 0000000..3903c92 --- /dev/null +++ b/.github/.kodiak.toml @@ -0,0 +1,18 @@ +version = 1 + +[merge] +method = "squash" # default: "merge" +delete_branch_on_merge = true # default: false +optimistic_updates = true # default: true +prioritize_ready_to_merge = true # default: false + +[merge.message] +title = "pull_request_title" # default: "github_default" +body = "pull_request_body" # default: "github_default" +strip_html_comments = true # default: false + +[update] +always = true # default: false + +[approve] +auto_approve_usernames = ["1gtm", "tamalsaha"] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..b769e80 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,104 @@ +name: Release + +on: + issue_comment: + types: [created] + workflow_dispatch: + +jobs: + build: + name: Build + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v1 + + - name: Set up Go 1.19 + uses: actions/setup-go@v1 + with: + go-version: 1.19 + id: go + + - name: Install yq + run: | + curl -fsSL -o yqq https://github.com/mikefarah/yq/releases/download/3.3.0/yq_linux_amd64 + chmod +x yqq + sudo mv yqq /usr/local/bin/yqq + pip3 install yq + + - name: Install release automaton + run: | + curl -fsSL -o release-automaton https://github.com/appscodelabs/release-automaton/releases/download/v0.0.37/release-automaton-linux-amd64 + chmod +x release-automaton + sudo mv release-automaton /usr/local/bin/release-automaton + + - name: Install Hugo Tools + run: | + curl -fsSL -o hugo-tools https://github.com/appscodelabs/hugo-tools/releases/download/v0.2.23/hugo-tools-linux-amd64 + chmod +x hugo-tools + sudo mv hugo-tools /usr/local/bin/hugo-tools + + - name: Install render-gotpl + run: | + curl -fsSL -o render-gotpl https://github.com/appscodelabs/render-gotpl/releases/download/v0.1.5/render-gotpl-linux-amd64 + chmod +x render-gotpl + sudo mv render-gotpl /usr/local/bin/render-gotpl + + - name: Install crd-importer + run: | + curl -L -o crd-importer https://github.com/kmodules/crd-importer/releases/download/v0.0.1/crd-importer-linux-amd64 + chmod +x ./crd-importer + sudo mv ./crd-importer /usr/local/bin/crd-importer + + - name: Install Helm 3 + run: | + curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash + + - name: Install GitHub CLI + run: | + curl -fsSL https://github.com/github/hub/raw/master/script/get | bash -s 2.14.1 + sudo mv bin/hub /usr/local/bin + + - name: Prepare git + env: + GITHUB_USER: 1gtm + GITHUB_TOKEN: ${{ secrets.LGTM_GITHUB_TOKEN }} + run: | + set -x + git config --global user.name "1gtm" + git config --global user.email "1gtm@appscode.com" + git remote set-url origin https://${GITHUB_USER}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git + + - name: Release + if: startsWith(github.event.issue.title, 'Release:') && contains(github.event.issue.html_url, '/pull/') && contains(github.event.issue.labels, 'locked') == false + env: + GITHUB_USER: 1gtm + GITHUB_TOKEN: ${{ secrets.LGTM_GITHUB_TOKEN }} + RELEASE_TRACKER: ${{ github.event.issue.html_url }} + PR_TITLE: ${{ github.event.issue.title }} + run: | + title="${{ github.event.issue.title }}" + while IFS=$': \r\t' read -r marker v ignored; do + case $marker in + Release) + export RELEASE=$(echo $v | tr -d '\r\t') + ;; + esac + done <<< "$title" + + [ ! -z "$RELEASE" ] || { + echo "Release number not found in issue title." + exit 0 + } + + hub pr checkout ${{ github.event.issue.number }} + + release-automaton release run \ + --release-tracker=${{ github.event.issue.html_url }} \ + --release-file=./releases/${RELEASE}/release.json \ + --comment-id=${{ github.event.comment.id }} + + release-automaton release readme + git add --all + git commit -a -s -m "Update release table" || true + git push origin HEAD || true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..66fd13c --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b64e71 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Stash Releases + +| Stash Version | Release Date | User Guide | Changelog | Kubernetes Version | +|--------------------------- | ------------ | ---------- | --------- | ------------------ |