From 7fd5699a4e4745aaa283a010843b6533fcd32dbe Mon Sep 17 00:00:00 2001 From: "Theodor S. Midtlien" Date: Thu, 28 May 2026 17:51:27 +0200 Subject: [PATCH] Use shared actions --- .github/actions/parse-semver/action.yml | 46 --------------- .github/workflows/golang-test-windows.yml | 18 ++---- .github/workflows/release.yml | 70 ++++++++--------------- 3 files changed, 28 insertions(+), 106 deletions(-) delete mode 100644 .github/actions/parse-semver/action.yml diff --git a/.github/actions/parse-semver/action.yml b/.github/actions/parse-semver/action.yml deleted file mode 100644 index e376541cc..000000000 --- a/.github/actions/parse-semver/action.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Parse semver string -description: Parse a refs/tags/vX.Y.Z[-prerelease][+build] ref into version components. Falls back to 0.0.0 when not run on a version tag. -outputs: - major: - description: Major version number (e.g. "1" from v1.2.3). - value: ${{ steps.parse.outputs.major }} - minor: - description: Minor version number (e.g. "2" from v1.2.3). - value: ${{ steps.parse.outputs.minor }} - patch: - description: Patch version number (e.g. "3" from v1.2.3). - value: ${{ steps.parse.outputs.patch }} - prerelease: - description: Prerelease identifier (e.g. "rc.1" from v1.2.3-rc.1), empty when absent. - value: ${{ steps.parse.outputs.prerelease }} - build: - description: Build metadata (e.g. "build.7" from v1.2.3+build.7), empty when absent. - value: ${{ steps.parse.outputs.build }} - fullversion: - description: MAJOR.MINOR.PATCH joined (e.g. "1.2.3"). - value: ${{ steps.parse.outputs.fullversion }} -runs: - using: composite - steps: - - id: parse - shell: bash - run: | - set -euo pipefail - REF="${{ (startsWith(github.ref, 'refs/tags/v') && github.ref) || 'refs/tags/v0.0.0' }}" - if [[ "$REF" =~ ^refs/tags/v([0-9]+)\.([0-9]+)\.([0-9]+)(-([0-9A-Za-z.-]+))?(\+([0-9A-Za-z.-]+))?$ ]]; then - MAJOR="${BASH_REMATCH[1]}" - MINOR="${BASH_REMATCH[2]}" - PATCH="${BASH_REMATCH[3]}" - PRERELEASE="${BASH_REMATCH[5]}" - BUILD="${BASH_REMATCH[7]}" - else - MAJOR=0; MINOR=0; PATCH=0; PRERELEASE=""; BUILD="" - fi - { - echo "major=$MAJOR" - echo "minor=$MINOR" - echo "patch=$PATCH" - echo "prerelease=$PRERELEASE" - echo "build=$BUILD" - echo "fullversion=$MAJOR.$MINOR.$PATCH" - } >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/golang-test-windows.yml b/.github/workflows/golang-test-windows.yml index 6cd78652f..8712cc879 100644 --- a/.github/workflows/golang-test-windows.yml +++ b/.github/workflows/golang-test-windows.yml @@ -47,19 +47,11 @@ jobs: - name: Download wintun id: download-wintun - shell: pwsh - run: | - $url = "https://pkgs.netbird.io/wintun/wintun-0.14.1.zip" - $dest = "${env:downloadPath}\wintun.zip" - $expected = "07c256185d6ee3652e09fa55c0b673e2624b565e02c4b9091c79ca7d2f24ef51" - - New-Item -ItemType Directory -Force -Path (Split-Path -Parent $dest) | Out-Null - Invoke-WebRequest $url -OutFile $dest - $actual = (Get-FileHash $dest -Algorithm SHA256).Hash.ToLower() - if ($actual -ne $expected) { - throw "wintun.zip checksum mismatch: expected $expected, got $actual" - } - "file-path=$dest" | Out-File -FilePath $env:GITHUB_OUTPUT -Append -Encoding utf8 + uses: netbirdio/shared-actions/actions/win-download-and-verify@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 + with: + url: https://pkgs.netbird.io/wintun/wintun-0.14.1.zip + destination: ${{ env.downloadPath }}\wintun.zip + sha256: 07c256185d6ee3652e09fa55c0b673e2624b565e02c4b9091c79ca7d2f24ef51 - name: Decompressing wintun files run: tar -xvf "${{ steps.download-wintun.outputs.file-path }}" -C ${{ env.downloadPath }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 94a62a33d..d8e19ad5e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -141,7 +141,7 @@ jobs: - name: Parse semver string id: semver_parser - uses: ./.github/actions/parse-semver + uses: netbirdio/shared-actions/actions/parse-semver@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 - if: ${{ !startsWith(github.ref, 'refs/tags/v') }} run: echo "flags=--snapshot" >> $GITHUB_ENV @@ -330,7 +330,7 @@ jobs: - name: Parse semver string id: semver_parser - uses: ./.github/actions/parse-semver + uses: netbirdio/shared-actions/actions/parse-semver@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 - if: ${{ !startsWith(github.ref, 'refs/tags/v') }} run: echo "flags=--snapshot" >> $GITHUB_ENV @@ -489,7 +489,7 @@ jobs: - name: Parse semver string id: semver_parser - uses: ./.github/actions/parse-semver + uses: netbirdio/shared-actions/actions/parse-semver@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 - name: Add 7-Zip to PATH run: echo "C:\Program Files\7-Zip" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append @@ -522,17 +522,11 @@ jobs: - name: Download wintun id: download-wintun - shell: pwsh - run: | - $url = "https://pkgs.netbird.io/wintun/wintun-0.14.1.zip" - $dest = "${env:downloadPath}\wintun.zip" - $expected = "07c256185d6ee3652e09fa55c0b673e2624b565e02c4b9091c79ca7d2f24ef51" - New-Item -ItemType Directory -Force -Path (Split-Path -Parent $dest) | Out-Null - Invoke-WebRequest $url -OutFile $dest - $actual = (Get-FileHash $dest -Algorithm SHA256).Hash.ToLower() - if ($actual -ne $expected) { - throw "wintun.zip checksum mismatch: expected $expected, got $actual" - } + uses: netbirdio/shared-actions/actions/win-download-and-verify@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 + with: + url: https://pkgs.netbird.io/wintun/wintun-0.14.1.zip + destination: ${{ env.downloadPath }}\wintun.zip + sha256: 07c256185d6ee3652e09fa55c0b673e2624b565e02c4b9091c79ca7d2f24ef51 - name: Decompress wintun files run: tar -xvf "${{ env.downloadPath }}\wintun.zip" -C ${{ env.downloadPath }} @@ -543,17 +537,11 @@ jobs: - name: Download Mesa3D (amd64 only) id: download-mesa3d if: matrix.arch == 'amd64' - shell: pwsh - run: | - $url = "https://pkgs.netbird.io/mesa3d/MesaForWindows-x64-20.1.8.7z" - $dest = "${env:downloadPath}\mesa3d.7z" - $expected = "71c7cb64ec229a1d6b8d62fa08e1889ed2bd17c0eeede8689daf0f25cb31d6b9" - New-Item -ItemType Directory -Force -Path (Split-Path -Parent $dest) | Out-Null - Invoke-WebRequest $url -OutFile $dest - $actual = (Get-FileHash $dest -Algorithm SHA256).Hash.ToLower() - if ($actual -ne $expected) { - throw "mesa3d.7z checksum mismatch: expected $expected, got $actual" - } + uses: netbirdio/shared-actions/actions/win-download-and-verify@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 + with: + url: https://pkgs.netbird.io/mesa3d/MesaForWindows-x64-20.1.8.7z + destination: ${{ env.downloadPath }}\mesa3d.7z + sha256: 71c7cb64ec229a1d6b8d62fa08e1889ed2bd17c0eeede8689daf0f25cb31d6b9 - name: Extract Mesa3D driver (amd64 only) if: matrix.arch == 'amd64' @@ -564,34 +552,22 @@ jobs: run: mv ${{ env.downloadPath }}\opengl32.dll ${{ github.workspace }}\dist\${{ env.PackageWorkdir }}\ - name: Download EnVar plugin for NSIS - shell: pwsh - run: | - $url = "https://pkgs.netbird.io/nsis/EnVar_plugin.zip" - $dest = "${{ github.workspace }}\envar_plugin.zip" - $expected = "e9aa92de351345ed82795251d838f1ae9041ba35af9d381a5780c7843b01f56a" - New-Item -ItemType Directory -Force -Path (Split-Path -Parent $dest) | Out-Null - Invoke-WebRequest $url -OutFile $dest - $actual = (Get-FileHash $dest -Algorithm SHA256).Hash.ToLower() - if ($actual -ne $expected) { - throw "envar_plugin.zip checksum mismatch: expected $expected, got $actual" - } + uses: netbirdio/shared-actions/actions/win-download-and-verify@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 + with: + url: https://pkgs.netbird.io/nsis/EnVar_plugin.zip + destination: ${{ github.workspace }}\envar_plugin.zip + sha256: e9aa92de351345ed82795251d838f1ae9041ba35af9d381a5780c7843b01f56a - name: Extract EnVar plugin run: 7z x -o"${{ github.workspace }}/NSIS_Plugins" "${{ github.workspace }}/envar_plugin.zip" - name: Download ShellExecAsUser plugin for NSIS (amd64 only) if: matrix.arch == 'amd64' - shell: pwsh - run: | - $url = "https://pkgs.netbird.io/nsis/ShellExecAsUser_amd64-Unicode.7z" - $dest = "${{ github.workspace }}\ShellExecAsUser_amd64-Unicode.7z" - $expected = "0a55ea25c7330a92cec028eda8afcaf1b1a7092e0dfb77c21c8f654564b4ff9d" - New-Item -ItemType Directory -Force -Path (Split-Path -Parent $dest) | Out-Null - Invoke-WebRequest $url -OutFile $dest - $actual = (Get-FileHash $dest -Algorithm SHA256).Hash.ToLower() - if ($actual -ne $expected) { - throw "ShellExecAsUser_amd64-Unicode.7z checksum mismatch: expected $expected, got $actual" - } + uses: netbirdio/shared-actions/actions/win-download-and-verify@be5df6047383da2236e02243cceb857d8567c27e # v0.0.2 + with: + url: https://pkgs.netbird.io/nsis/ShellExecAsUser_amd64-Unicode.7z + destination: ${{ github.workspace }}\ShellExecAsUser_amd64-Unicode.7z + sha256: 0a55ea25c7330a92cec028eda8afcaf1b1a7092e0dfb77c21c8f654564b4ff9d - name: Extract ShellExecAsUser plugin (amd64 only) if: matrix.arch == 'amd64'