Skip to content

Commit

Permalink
Automate release issue
Browse files Browse the repository at this point in the history
Signed-off-by: Prudhvi Godithi <[email protected]>
  • Loading branch information
prudhvigodithi committed Jul 18, 2023
1 parent 09b5143 commit 1032073
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 54 deletions.
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/component_release_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ If including changes in this release, increment the version on `{{RELEASE_VERSIO
- [ ] Assign this issue to a release owner.
- [ ] Finalize scope and feature set and update [the Public Roadmap](https://github.com/orgs/opensearch-project/projects/1).
- [ ] All the tasks in this issue have been reviewed by the release owner.
- [ ] Create, update, triage and label all features and issues targeted for this release with `v__REPLACE_MAJOR_MINOR_PATCH__`.
- [ ] Create, update, triage and label all features and issues targeted for this release with `v{{RELEASE_VERSION}}`.

### CI/CD

- [ ] All code changes for `__{REPLACE_MAJOR_MINOR_PATCH}__` are complete.
- [ ] All code changes for `{{RELEASE_VERSION}}` are complete.
- [ ] Ensure working and passing CI.
- [ ] Check that this repo is included in the [distribution manifest](https://github.com/opensearch-project/opensearch-build/blob/main/manifests/{{RELEASE_VERSION}}).

Expand All @@ -45,7 +45,7 @@ If including changes in this release, increment the version on `{{RELEASE_VERSIO
- [ ] Update to the `{{RELEASE_VERSION}}` release branch in the [distribution manifest](https://github.com/opensearch-project/opensearch-build/blob/main/manifests/{{RELEASE_VERSION}}).
- [ ] Increment the version on the parent branch to the next development iteration.
- [ ] Gather, review and publish release notes following the [rules](https://github.com/opensearch-project/opensearch-plugins/blob/main/RELEASE_NOTES.md) and back port it to the release branch.[git-release-notes](https://github.com/ariatemplates/git-release-notes) may be used to generate release notes from your commit history.
- [ ] Confirm that all changes for `__{REPLACE_MAJOR_MINOR_PATCH}__` have been merged.
- [ ] Confirm that all changes for `{{RELEASE_VERSION}}` have been merged.
- [ ] Add this repo to the [manifest](https://github.com/opensearch-project/opensearch-build/blob/main/manifests/) for the next developer iteration.

### Release Testing
Expand Down
68 changes: 39 additions & 29 deletions .github/workflows/os-release-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
repository: prudhvigodithi/opensearch-build
repository: opensearch-project/opensearch-build
ref: main
- id: set-matrix
# produces a list of major versions, e.g. ["1.4.0","2.10.0","2.6.0","2.7.0","2.8.0","2.9.0","3.0.0"]
Expand All @@ -37,66 +37,76 @@ jobs:
matrix:
entry:
- {repo: OpenSearch}
- {repo: alerting}
- {repo: anomaly-detection}
- {repo: asynchronous-search}
- {repo: common-utils}
- {repo: cross-cluster-replication}
- {repo: geospatial}
- {repo: index-management}
- {repo: job-scheduler}
- {repo: k-NN}
- {repo: neural-search}
- {repo: ml-commons}
- {repo: notifications}
- {repo: observability}
- {repo: performance-analyzer}
- {repo: performance-analyzer-rca}
- {repo: reporting}
- {repo: security}
- {repo: security-analytics}
- {repo: sql}
release_version: ${{ fromJson(needs.list-manifest-versions.outputs.matrix) }}

steps:
#- name: GitHub App token
# id: github_app_token
# uses: tibdex/[email protected]
# with:
# app_id: ${{ secrets.APP_ID }}
# private_key: ${{ secrets.APP_PRIVATE_KEY }}
# installation_id: 22958780

- name: GitHub App token
id: github_app_token
uses: tibdex/[email protected]
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
installation_id: 22958780
- name: Checkout
uses: actions/checkout@v3

- name: Check if build repo release issue exists
id: check_if_build_repo_issue_exists
uses: actions-cool/issues-helper@v3
with:
actions: 'find-issues'
repo: prudhvigodithi/opensearch-build
# token: ${{ steps.github_app_token.outputs.token }}
token: ${{ secrets.PAT }}
repo: opensearch-project/opensearch-build
token: ${{ steps.github_app_token.outputs.token }}
issue-state: 'open'
title-includes: '[RELEASE] Release version ${{ matrix.release_version }}'

- name: Check out plugin repo
uses: actions/checkout@v3
with:
path: plugin-repo
repository: prudhvigodithi/${{ matrix.entry.repo }}

repository: opensearch-project/${{ matrix.entry.repo }}
- name: Check if plugin repo release issue exists
if: steps.check_if_build_repo_issue_exists.outputs.issues != '[]'
id: check_if_plugin_repo_issue_exists
uses: actions-cool/issues-helper@v3
with:
actions: 'find-issues'
repo: prudhvigodithi/${{ matrix.entry.repo }}
# token: ${{ steps.github_app_token.outputs.token }}
token: ${{ secrets.PAT }}
repo: opensearch-project/${{ matrix.entry.repo }}
token: ${{ steps.github_app_token.outputs.token }}
issue-state: 'open'
title-includes: '[RELEASE] Release version ${{ matrix.release_version }}'

- name: Replace placeholders
- name: Replace Placeholders
if: steps.check_if_plugin_repo_issue_exists.outputs.issues == '[]'
run: |
# Read the file contents and replace the placeholders
file_path="../opensearch-build/.github/ISSUE_TEMPLATE/component_release_template.md"
RELEASE_VERSION="${{ matrix.release_version }}"
RELEASE_ISSUE_NUMBER =$(echo "${{ steps.check_if_plugin_repo_issue_exists.outputs.issueNumbers }}" | grep -oE '[0-9]+' | head -n1)
RELEASE_ISSUE="https://github.com/prudhvigodithi/opensearch-build/issues/$RELEASE_ISSUE_NUMBER"
RELEASE_ISSUE_NUMBER=$(echo '${{ steps.check_if_build_repo_issue_exists.outputs.issues }}' | jq '.[0].number')
RELEASE_ISSUE="https://github.com/opensearch-project/opensearch-build/issues/${RELEASE_ISSUE_NUMBER}"
RELEASE_VERSION_X=$(echo "${{ matrix.release_version }}" | awk -F'.' '{print $1}').x
sed -e "s|{{RELEASE_VERSION}}|${RELEASE_VERSION}|g" -e "s|{{RELEASE_ISSUE}}|${RELEASE_ISSUE}|g" -e "s|{{RELEASE_VERSION_X}}|${RELEASE_VERSION_X}|g" "$file_path" > "$file_path.tmp" && mv "$file_path.tmp" "$file_path"
- name: Create Issue From File
- name: Create component release issue from file
if: steps.check_if_plugin_repo_issue_exists.outputs.issues == '[]'
uses: peter-evans/create-issue-from-file@v4
with:
title: '[RELEASE] Release version ${{ matrix.release_version }}'
content-filepath: ../opensearch-build/.github/ISSUE_TEMPLATE/component_release_template.md
labels: 'v${{ matrix.release_version }}'
# token: ${{ steps.github_app_token.outputs.token }}
token: ${{ secrets.PAT }}
repository: prudhvigodithi/${{ matrix.entry.repo }}
token: ${{ steps.github_app_token.outputs.token }}
repository: opensearch-project/${{ matrix.entry.repo }}
44 changes: 22 additions & 22 deletions .github/workflows/osd-release-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,40 +62,40 @@ jobs:
installation_id: 22958780
- name: Checkout
uses: actions/checkout@v3
- uses: dblock/[email protected]
env:
GITHUB_TOKEN: ${{ steps.github_app_token.outputs.token }}
VERSION: ${{ matrix.release_version }}
id: build-repo-release-issue
- name: Check if build repo release issue exists
id: check_if_build_repo_issue_exists
uses: actions-cool/issues-helper@v3
with:
search_existing: all
update_existing: false
filename: .github/ISSUE_TEMPLATE/release_template.md
- name: Check out build repo
uses: actions/checkout@v3
actions: 'find-issues'
repo: opensearch-project/opensearch-build
token: ${{ steps.github_app_token.outputs.token }}
title-includes: '[RELEASE] Release version ${{ matrix.release_version }}'
- name: Check out plugin repo
uses: actions/checkout@v3
with:
path: plugin-repo
repository: opensearch-project/${{ matrix.entry.repo }}
- name: Replace placeholders
run: |
# Read the file contents and replace the placeholders
file_path="../opensearch-build/.github/ISSUE_TEMPLATE/component_release_template.md"
RELEASE_VERSION="${{ matrix.release_version }}"
RELEASE_ISSUE="${{ steps.build-repo-release-issue.outputs.url }}"
RELEASE_VERSION_X=$(echo "${{ steps.build-repo-release-issue.outputs.url }}" | awk -F'.' '{print $1}').x
sed -e "s|{{RELEASE_VERSION}}|${RELEASE_VERSION}|g" -e "s|{{RELEASE_ISSUE}}|${RELEASE_ISSUE}|g" -e "s|{{RELEASE_VERSION_X}}|${RELEASE_VERSION_X}|g" "$file_path" > "$file_path.tmp" && mv "$file_path.tmp" "$file_path"
- name: Check if issue exists
id: check_if_issue_exists
- name: Check if plugin repo release issue exists
if: steps.check_if_build_repo_issue_exists.outputs.issues != '[]'
id: check_if_plugin_repo_issue_exists
uses: actions-cool/issues-helper@v3
with:
actions: 'find-issues'
repo: opensearch-project/${{ matrix.entry.repo }}
token: ${{ steps.github_app_token.outputs.token }}
title-includes: '[RELEASE] Release version ${{ matrix.release_version }}'
- name: Create Issue From File
if: steps.check_if_issue_exists.outputs.issues == '[]'
- name: Replace Placeholders
if: steps.check_if_plugin_repo_issue_exists.outputs.issues == '[]'
run: |
# Read the file contents and replace the placeholders
file_path="../opensearch-build/.github/ISSUE_TEMPLATE/component_release_template.md"
RELEASE_VERSION="${{ matrix.release_version }}"
RELEASE_ISSUE_NUMBER=$(echo '${{ steps.check_if_build_repo_issue_exists.outputs.issues }}' | jq '.[0].number')
RELEASE_ISSUE="https://github.com/opensearch-project/opensearch-build/issues/${RELEASE_ISSUE_NUMBER}"
RELEASE_VERSION_X=$(echo "${{ matrix.release_version }}" | awk -F'.' '{print $1}').x
sed -e "s|{{RELEASE_VERSION}}|${RELEASE_VERSION}|g" -e "s|{{RELEASE_ISSUE}}|${RELEASE_ISSUE}|g" -e "s|{{RELEASE_VERSION_X}}|${RELEASE_VERSION_X}|g" "$file_path" > "$file_path.tmp" && mv "$file_path.tmp" "$file_path"
- name: Create component release issue from file
if: steps.check_if_plugin_repo_issue_exists.outputs.issues == '[]'
uses: peter-evans/create-issue-from-file@v4
with:
title: '[RELEASE] Release version ${{ matrix.release_version }}'
Expand Down

0 comments on commit 1032073

Please sign in to comment.