Increment OpenSearch Plugins Version #348
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Increment OpenSearch Plugins Version | |
on: | |
schedule: | |
- cron: 0 0 * * * | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: Log level | |
required: true | |
default: warning | |
type: choice | |
options: | |
- info | |
- warning | |
- debug | |
jobs: | |
plugin-version-increment-sync: | |
if: github.repository == 'opensearch-project/opensearch-build' | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
entry: | |
# Adding the core repo OpenSearch for the label creation automation | |
- {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, path: notifications} | |
- {repo: observability} | |
- {repo: performance-analyzer} | |
- {repo: performance-analyzer-rca} | |
- {repo: reporting} | |
- {repo: security} | |
- {repo: security-analytics} | |
- {repo: sql} | |
- {repo: custom-codecs} | |
- {repo: flow-framework} | |
- {repo: skills} | |
branch: | |
- 1.x | |
- '1.3' | |
- 2.x | |
- main | |
- '2.12' | |
- '2.13' | |
- '2.14' | |
exclude: | |
- {entry: {repo: geospatial}, branch: '1.3'} | |
- {entry: {repo: neural-search}, branch: '1.3'} | |
- {entry: {repo: security-analytics}, branch: '1.3'} | |
- {entry: {repo: notifications, path: notifications}, branch: '1.3'} | |
- {entry: {repo: custom-codecs}, branch: '1.3'} | |
steps: | |
- name: Check out OpenSearch repo | |
uses: actions/checkout@v3 | |
with: | |
repository: opensearch-project/OpenSearch | |
ref: ${{ matrix.branch }} | |
- name: Fetch OpenSearch version | |
run: | | |
OPENSEARCH_VERSION=$(cat buildSrc/version.properties | grep opensearch | cut -d= -f2 | grep -oE '[0-9.]+') | |
echo "OPENSEARCH_VERSION_NUMBER=$OPENSEARCH_VERSION" >> $GITHUB_ENV | |
OPENSEARCH_VERSION=$OPENSEARCH_VERSION-SNAPSHOT | |
echo "OPENSEARCH_VERSION=$OPENSEARCH_VERSION" >> $GITHUB_ENV | |
- name: Check out plugin repo | |
if: ${{ matrix.entry.repo != 'OpenSearch' }} | |
uses: actions/checkout@v3 | |
with: | |
repository: opensearch-project/${{ matrix.entry.repo }} | |
ref: ${{ matrix.branch }} | |
- name: Increment Version in ${{ matrix.entry.repo }} | |
if: ${{ matrix.entry.repo != 'OpenSearch' }} | |
run: | | |
echo "OpenSearch Core repo version on branch ${{ matrix.branch }} is ${{ env.OPENSEARCH_VERSION_NUMBER }}" | |
if [ ${{ matrix.entry.path }} ]; then | |
echo "The gradle path is ${{ matrix.entry.path }}" | |
cd ${{ matrix.entry.path }} | |
fi | |
./gradlew updateVersion -DnewVersion=${{ env.OPENSEARCH_VERSION }} | |
- 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: Check and Create label | |
id: check_create_label | |
uses: actions/github-script@v6 | |
with: | |
github-token: ${{ steps.github_app_token.outputs.token }} | |
result-encoding: string | |
script: | | |
const labelName = "v${{ env.OPENSEARCH_VERSION_NUMBER }}"; | |
let labelFound = false; | |
try { | |
const label = await github.rest.issues.getLabel({ | |
owner: context.repo.owner, | |
repo: "${{ matrix.entry.repo }}", | |
name: labelName | |
}); | |
labelFound = true; | |
} catch (error) { | |
if (error.status === 404) { | |
const randomColor = Math.floor(Math.random() * 16777215).toString(16); | |
const newLabel = { | |
owner: context.repo.owner, | |
repo: "${{ matrix.entry.repo }}", | |
name: labelName, | |
color: randomColor, | |
description: "Issues targeting release " + labelName | |
}; | |
await github.rest.issues.createLabel(newLabel); | |
labelFound = true; | |
} else { | |
throw error; | |
} | |
} | |
console.log(labelFound); | |
return labelFound | |
- name: Create Pull Request | |
if: ${{ matrix.entry.repo != 'OpenSearch' }} | |
id: cpr | |
uses: peter-evans/create-pull-request@v4 | |
with: | |
token: ${{ steps.github_app_token.outputs.token }} | |
committer: opensearch-ci-bot <[email protected]> | |
author: opensearch-ci-bot <[email protected]> | |
commit-message: | | |
Increment version to ${{ env.OPENSEARCH_VERSION }} | |
Signed-off-by: opensearch-ci-bot <[email protected]> | |
delete-branch: true | |
branch: create-pull-request/${{ env.OPENSEARCH_VERSION }} | |
title: '[AUTO] Increment version to ${{ env.OPENSEARCH_VERSION }}' | |
labels: | | |
v${{ env.OPENSEARCH_VERSION_NUMBER }} | |
body: | | |
- Incremented version to **${{ env.OPENSEARCH_VERSION }}**. | |
- name: Check outputs | |
run: |- | |
echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" | |
echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" |