From 8af3bf76d40480c67dfa0377d7886f938068128b Mon Sep 17 00:00:00 2001 From: pratushny Date: Thu, 4 Jun 2026 18:48:07 +0400 Subject: [PATCH 1/2] chore: add release wf --- .github/workflows/release.yaml | 70 ++++++++++++++++++++++++++++++++++ .gitignore | 5 ++- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..c8f645b --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,70 @@ +name: Release +run-name: Release ${{ inputs.releaseVersion }} by ${{ github.actor }} + +on: + workflow_dispatch: + inputs: + releaseVersion: + description: "Release version (e.g., v1.0.0)" + required: true + type: string + majorReleaseVersion: + description: "Related major release version (e.g., v1)" + required: true + type: choice + options: + - v1 + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + name: Build and Release + steps: + - name: "Check release version" + run: | + expr "${{ github.event.inputs.releaseVersion }}" : '^v\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\(-beta\.[0-9][0-9]*\)\{0,1\}\)$' + + - uses: actions/checkout@v6 + with: + ref: main + token: ${{ secrets.QAMETA_CI }} + + - name: "Configure CI Git User" + run: | + git config --global user.name qameta-ci + git config --global user.email qameta-ci@qameta.io + + - uses: actions/setup-node@v6 + with: + node-version: 24 + cache: npm + - run: npm ci + - run: npm run build + - run: npm run lint + + - name: "Commit release version and create tag" + run: | + git add -A + git commit --allow-empty -m "release ${{ github.event.inputs.releaseVersion }}" --no-verify + git tag ${{ github.event.inputs.releaseVersion }} + git push origin HEAD:main + git push origin ${{ github.event.inputs.releaseVersion }} + + - name: "Publish Github Release" + uses: octokit/request-action@v2.x + with: + route: POST /repos/${{ github.repository }}/releases + tag_name: ${{ github.event.inputs.releaseVersion }} + generate_release_notes: true + target_commitish: ${{ github.ref }} + env: + GITHUB_TOKEN: ${{ secrets.QAMETA_CI }} + + - name: Tag new target + run: git tag -f ${{ github.event.inputs.majorReleaseVersion }} ${{ github.event.inputs.releaseVersion }} + + - name: Push new tag + run: git push origin ${{ github.event.inputs.majorReleaseVersion }} --force diff --git a/.gitignore b/.gitignore index f8fede6..0145193 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # Dependencies node_modules -# Project +# Project lib + +# IDEA +.idea/* From baea1aa315e54e23623d56920de135b0ac9bc9e2 Mon Sep 17 00:00:00 2001 From: pratushny Date: Thu, 4 Jun 2026 18:50:58 +0400 Subject: [PATCH 2/2] fix: format --- .github/workflows/release.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c8f645b..dd05dda 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -5,11 +5,11 @@ on: workflow_dispatch: inputs: releaseVersion: - description: "Release version (e.g., v1.0.0)" + description: 'Release version (e.g., v1.0.0)' required: true type: string majorReleaseVersion: - description: "Related major release version (e.g., v1)" + description: 'Related major release version (e.g., v1)' required: true type: choice options: @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest name: Build and Release steps: - - name: "Check release version" + - name: 'Check release version' run: | expr "${{ github.event.inputs.releaseVersion }}" : '^v\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\(-beta\.[0-9][0-9]*\)\{0,1\}\)$' @@ -32,7 +32,7 @@ jobs: ref: main token: ${{ secrets.QAMETA_CI }} - - name: "Configure CI Git User" + - name: 'Configure CI Git User' run: | git config --global user.name qameta-ci git config --global user.email qameta-ci@qameta.io @@ -45,7 +45,7 @@ jobs: - run: npm run build - run: npm run lint - - name: "Commit release version and create tag" + - name: 'Commit release version and create tag' run: | git add -A git commit --allow-empty -m "release ${{ github.event.inputs.releaseVersion }}" --no-verify @@ -53,7 +53,7 @@ jobs: git push origin HEAD:main git push origin ${{ github.event.inputs.releaseVersion }} - - name: "Publish Github Release" + - name: 'Publish Github Release' uses: octokit/request-action@v2.x with: route: POST /repos/${{ github.repository }}/releases