From a37a9e40abc3d4db10f7be0e0dbcf3a26f912660 Mon Sep 17 00:00:00 2001 From: Abdel792 Date: Sun, 26 Jul 2026 11:43:43 +0200 Subject: [PATCH 1/3] ci: optimize manual release workflow for uv, pyright, and clean inputs - Replace pip with astral-sh/setup-uv and uv sync for reproducible builds. - Replace mypy with uv run pyright to match project configuration. - Simplify updateYear logic to rely directly on user input. - Fix action version tags and secure environment variables in build steps. --- .github/workflows/manual-release.yaml | 62 ++++++++++++++++----------- 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/.github/workflows/manual-release.yaml b/.github/workflows/manual-release.yaml index 1b01c95..9e96d77 100644 --- a/.github/workflows/manual-release.yaml +++ b/.github/workflows/manual-release.yaml @@ -15,7 +15,7 @@ on: default: false updateYear: - description: 'Update addon_lastTestedNVDAVersion in buildVars.py to current year (optional for stable, automatic for beta/dev)' + description: 'Update addon_lastTestedNVDAVersion in buildVars.py to current year' type: boolean required: false default: false @@ -33,9 +33,10 @@ on: jobs: buildAndUpload: runs-on: ubuntu-latest - permissions: write-all - steps: + permissions: + contents: write + steps: - name: Date formatting uses: ajilraju/actions-date@master #release v0.1 with: @@ -84,41 +85,51 @@ jobs: run: echo '${{ env.CUR_YEAR }}' - name: Checkout code - uses: actions/checkout@v7 + uses: actions/checkout@v4 - name: Set up Python 3.11 - uses: actions/setup-python@v7 + uses: actions/setup-python@v5 with: - python-version: 3.11 + python-version: '3.11' - - name: Install dependencies + - name: Set up uv + uses: astral-sh/setup-uv@v5 + with: + enable-cache: true + + - name: Install dependencies with uv run: | - pip install -U pip scons markdown ruff mypy + uv sync --python 3.11 sudo apt update - sudo apt install gettext + sudo apt install -y gettext - name: Lint with ruff run: | - python -m ruff check addon + uv run ruff check addon - - name: Lint with mypy + - name: Type check with pyright run: | - python -m mypy addon --install-types --non-interactive + uv run pyright addon - name: Add add-on version + env: + BUILD_VERSION: ${{ env.BUILD_VERSION }} + CUR_YEAR: ${{ env.CUR_YEAR }} + UPDATE_YEAR: ${{ inputs.updateYear }} + CHANNEL: ${{ inputs.channel }} run: | + import os import re - version='${{ env.BUILD_VERSION }}' - year='${{ env.CUR_YEAR }}' - updateYear='${{ inputs.updateYear }}' == 'true' - channel='${{ inputs.channel }}' + + version = os.environ['BUILD_VERSION'] + year = os.environ['CUR_YEAR'] + updateYear = os.environ['UPDATE_YEAR'].lower() == 'true' + channel = os.environ['CHANNEL'] with open("buildVars.py", "r", encoding="utf-8") as f: text = f.read() - shouldUpdateYear = channel in ("beta", "dev") or (channel == "stable" and updateYear) - - if shouldUpdateYear: + if updateYear: match = re.search( r'addon_lastTestedNVDAVersion="(\d{4})\.\d+\.\d+",', text @@ -146,14 +157,13 @@ jobs: with open("changelog.md", "r", encoding="utf-8") as f: text = f.read() - text = re.sub("Changes for [^\r\n]+", f"Changes for {version}", text) + text = re.sub("Changes for [^\r\n]+", f"Changes for {version}", text, count=1) with open("changelog.md", "w", encoding="utf-8") as f: f.write(text) shell: python - - name: Check if there are any changes id: verify_diff run: | @@ -162,21 +172,23 @@ jobs: - name: Commit and push changes if: steps.verify_diff.outputs.changed == 'true' run: | - git config --local user.name 'github-actions' - git config --local user.email 'github-actions@github.com' + git config --local user.name 'github-actions[bot]' + git config --local user.email 'github-actions[bot]@users.noreply.github.com' git commit -a -m "Update buildVars and changelog" git tag ${{ env.TAG_NAME }} git push origin HEAD:${{ github.ref_name }} git push origin ${{ env.TAG_NAME }}:refs/tags/${{ env.TAG_NAME }} - name: Build add-on - run: scons version=${{ env.BUILD_VERSION }} + env: + BUILD_VERSION: ${{ env.BUILD_VERSION }} + run: uv run scons version="$BUILD_VERSION" - name: Calculate sha256 run: sha256sum *.nvda-addon >> sha256.txt - name: Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From f78dd2f9db23b4a08bba04f1baca9617505e5deb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 09:45:59 +0000 Subject: [PATCH 2/3] Bump softprops/action-gh-release from 2 to 3 (#10) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/manual-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/manual-release.yaml b/.github/workflows/manual-release.yaml index 9e96d77..e2de9b8 100644 --- a/.github/workflows/manual-release.yaml +++ b/.github/workflows/manual-release.yaml @@ -188,7 +188,7 @@ jobs: run: sha256sum *.nvda-addon >> sha256.txt - name: Release - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 24110c2cd15164bdd82402b5632c99120fbda07c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 21:41:27 +0000 Subject: [PATCH 3/3] Bump astral-sh/setup-uv from 5 to 7 Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 5 to 7. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v7) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/manual-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/manual-release.yaml b/.github/workflows/manual-release.yaml index e2de9b8..50b003d 100644 --- a/.github/workflows/manual-release.yaml +++ b/.github/workflows/manual-release.yaml @@ -93,7 +93,7 @@ jobs: python-version: '3.11' - name: Set up uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v7 with: enable-cache: true