From d0df9885176048eedbe1776f4720fc9206a0c711 Mon Sep 17 00:00:00 2001 From: Nikita Skrynnik <93182827+NikitaSkrynnik@users.noreply.github.com> Date: Thu, 25 Apr 2024 04:04:52 +0700 Subject: [PATCH] Create releases with Github CLI (#171) * Create releases with Github CLI Signed-off-by: NikitaSkrynnik * use reusable github actions for release and release-dependent-repositories jobs Signed-off-by: NikitaSkrynnik * fix yaml linter issues Signed-off-by: NikitaSkrynnik * remove get-tag job Signed-off-by: NikitaSkrynnik --------- Signed-off-by: NikitaSkrynnik --- .github/workflows/release.yaml | 83 ++++++---------------------------- 1 file changed, 15 insertions(+), 68 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c53c7d8..c95e14c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -6,80 +6,27 @@ on: - completed workflows: - 'ci' + branches: + - release/* jobs: print-debug-info: name: Print debug info for Release workflow runs-on: ubuntu-latest steps: - uses: hmarr/debug-action@v2 + create-release: name: Create release - runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' && contains(github.event.workflow_run.head_branch, 'release/') }} - steps: - - name: Checkout repository - uses: actions/checkout@v2 - with: - ref: refs/heads/${{github.event.workflow_run.head_branch}} - - name: Get tag - run: | - branch=${{github.event.workflow_run.head_branch}} - echo tag=${branch#release/} >> $GITHUB_OUTPUT - id: get-tag-step - - name: Push tag ${{ steps.get-tag-step.outputs.tag }} - run: | - git status - git tag ${{ steps.get-tag-step.outputs.tag }} - git push origin ${{ steps.get-tag-step.outputs.tag }} -f - - name: Create release ${{ steps.get-tag-step.outputs.tag }} - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.NSM_BOT_GITHUB_TOKEN }} - with: - tag_name: refs/tags/${{ steps.get-tag-step.outputs.tag }} - release_name: ${{ steps.get-tag-step.outputs.tag }} - draft: false - prerelease: false - update-dependent-repositories: - strategy: - matrix: - repository: - - sdk - name: Update ${{ matrix.repository }} + if: ${{ github.event.workflow_run.conclusion == 'success' }} + uses: networkservicemesh/.github/.github/workflows/release.yaml@main + secrets: + token: ${{ secrets.NSM_BOT_GITHUB_TOKEN }} + + release-dependent-repositories: + name: Release dependent repositories needs: create-release - runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' && contains(github.event.workflow_run.head_branch, 'release/') }} - steps: - - name: Get tag - run: | - branch=${{github.event.workflow_run.head_branch}} - echo '::set-output name=tag::'${branch#release/} - id: get-tag-step - - name: Create commit - run: | - echo "Update go.mod and go.sum to ${{ github.repository }}@${{ steps.get-tag-step.outputs.tag }}" >> /tmp/commit-message - - name: Checkout networkservicemesh/${{ matrix.repository }} - uses: actions/checkout@v2 - with: - path: networkservicemesh/${{ matrix.repository }} - repository: networkservicemesh/${{ matrix.repository }} - token: ${{ secrets.NSM_BOT_GITHUB_TOKEN }} - - uses: actions/setup-go@v1 - with: - go-version: 1.20.5 - - name: Update ${{ github.repository }} locally - working-directory: networkservicemesh/${{ matrix.repository }} - run: | - GOPRIVATE=github.com/networkservicemesh go get -u github.com/${{ github.repository }}@${{ steps.get-tag-step.outputs.tag }} - go mod tidy - git diff - - name: Push update to the ${{ matrix.repository }} - working-directory: networkservicemesh/${{ matrix.repository }} - run: | - echo Starting to update repositotry ${{ matrix.repository }} - git config --global user.email "nsmbot@networkservicmesh.io" - git config --global user.name "NSMBot" - git add go.mod go.sum - git commit -s -F /tmp/commit-message - git checkout -b ${{ github.event.workflow_run.head_branch }} - git push -f origin ${{ github.event.workflow_run.head_branch }} + uses: networkservicemesh/.github/.github/workflows/release-dependent-repositories.yaml@main + with: + dependent_repositories: ["sdk"] + secrets: + token: ${{ secrets.NSM_BOT_GITHUB_TOKEN }}