From 79c2520760509c16ef17baf862d2d094f8dcf3fb Mon Sep 17 00:00:00 2001 From: Prudhvi Godithi Date: Thu, 22 Jun 2023 14:54:16 -0700 Subject: [PATCH] Label creation automation Signed-off-by: Prudhvi Godithi --- .../os-increment-plugin-versions.yml | 76 ++++++++++++------- .../osd-increment-plugin-versions.yml | 33 ++++++++ 2 files changed, 82 insertions(+), 27 deletions(-) diff --git a/.github/workflows/os-increment-plugin-versions.yml b/.github/workflows/os-increment-plugin-versions.yml index 46ed50b965..33cbdc1231 100644 --- a/.github/workflows/os-increment-plugin-versions.yml +++ b/.github/workflows/os-increment-plugin-versions.yml @@ -23,25 +23,7 @@ jobs: fail-fast: false matrix: entry: - - {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} branch: - '1.3' - 2.x @@ -65,11 +47,54 @@ jobs: 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 uses: actions/checkout@v3 with: - repository: opensearch-project/${{ matrix.entry.repo }} + repository: prudhvigodithi/${{ matrix.entry.repo }} ref: ${{ matrix.branch }} + + - name: Get owner and repo + id: repo_info + run: | + echo "OWNER=${{ github.repository_owner }}" >> $GITHUB_ENV + echo "REPO=${{ github.event.repository.name }}" >> $GITHUB_ENV + + - name: Check if label exists + id: check_label + uses: actions/github-script@v6 + env: + REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + result-encoding: string + script: | + const { data: labels } = await github.rest.issues.listLabelsForRepo({ + owner: process.env.OWNER, + repo: process.env.REPO, + per_page: 100 + }); + const labelFound = labels.some(label => label.name === 'v${{ env.OPENSEARCH_VERSION_NUMBER }}'); + console.log(labelFound); + return labelFound + + + - name: Create label + if: ${{ steps.check_label.outputs.result != 'true' }} + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const randomColor = Math.floor(Math.random() * 16777215).toString(16); + const newLabel = { + owner: process.env.OWNER, + repo: process.env.REPO, + name: "v${{ env.OPENSEARCH_VERSION_NUMBER }}", + color: randomColor, + description: "v${{ env.OPENSEARCH_VERSION_NUMBER }}" + }; + await github.rest.issues.createLabel(newLabel); + + - name: Increment Version in ${{ matrix.entry.repo }} run: | echo "OpenSearch Core repo version on branch ${{ matrix.branch }} is ${{ env.OPENSEARCH_VERSION_NUMBER }}" @@ -78,18 +103,12 @@ jobs: cd ${{ matrix.entry.path }} fi ./gradlew updateVersion -DnewVersion=${{ env.OPENSEARCH_VERSION }} - - name: GitHub App token - id: github_app_token - uses: tibdex/github-app-token@v1.6.0 - with: - app_id: ${{ secrets.APP_ID }} - private_key: ${{ secrets.APP_PRIVATE_KEY }} - installation_id: 22958780 + - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v4 with: - token: ${{ steps.github_app_token.outputs.token }} + token: ${{ secrets.GITHUB_TOKEN }} committer: opensearch-ci-bot author: opensearch-ci-bot commit-message: | @@ -99,9 +118,12 @@ jobs: 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 }}" + \ No newline at end of file diff --git a/.github/workflows/osd-increment-plugin-versions.yml b/.github/workflows/osd-increment-plugin-versions.yml index 6e91f2c1f4..a4f80eb41f 100644 --- a/.github/workflows/osd-increment-plugin-versions.yml +++ b/.github/workflows/osd-increment-plugin-versions.yml @@ -71,6 +71,7 @@ jobs: - name: Bootstrap and Version Increment run: | DASHBOARD_VERSION=$(node -p "require('./OpenSearch-Dashboards/package.json').version") + echo "DASHBOARD_VERSION=$DASHBOARD_VERSION" >> $GITHUB_ENV cd OpenSearch-Dashboards/plugins/${{ matrix.entry.repo }} if [ ${{ matrix.entry.path }} ]; then yarn osd bootstrap @@ -101,6 +102,36 @@ jobs: app_id: ${{ secrets.APP_ID }} private_key: ${{ secrets.APP_PRIVATE_KEY }} installation_id: 22958780 + - name: Check if label exists + id: check_label + uses: actions/github-script@v6 + with: + github-token: ${{ steps.github_app_token.outputs.token }} + result-encoding: string + script: | + const { data: labels } = await github.rest.issues.listLabelsForRepo({ + owner: context.repo.owner, + repo: context.repo.repo, + per_page: 100 + }); + const labelFound = labels.some(label => label.name === 'v${{ env.DASHBOARD_VERSION }}'); + console.log(labelFound); + return labelFound + - name: Create label + if: ${{ steps.check_label.outputs.result != 'true' }} + uses: actions/github-script@v6 + with: + github-token: ${{ steps.github_app_token.outputs.token }} + script: | + const randomColor = Math.floor(Math.random() * 16777215).toString(16); + const newLabel = { + owner: context.repo.owner, + repo: context.repo.repo, + name: "v${{ env.DASHBOARD_VERSION }}", + color: randomColor, + description: "v${{ env.DASHBOARD_VERSION }}" + }; + await github.rest.issues.createLabel(newLabel); - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v5 @@ -115,6 +146,8 @@ jobs: delete-branch: true branch: create-pull-request/${{ env.OSD_PLUGIN_VERSION }} title: '[AUTO] Increment version to ${{ env.OSD_PLUGIN_VERSION }}' + labels: | + v${{ env.DASHBOARD_VERSION }} body: | - Incremented version to **${{ env.OSD_PLUGIN_VERSION }}**. path: 'OpenSearch-Dashboards/plugins/${{ matrix.entry.repo }}'