From 127e1bf7811d8b6ffbbbc5c453651fad7c62c925 Mon Sep 17 00:00:00 2001 From: agracio Date: Wed, 18 Sep 2024 15:31:33 +0100 Subject: [PATCH] updating GitHub pipeline --- .github/workflows/build.yml | 65 ++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 22 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b45a0a7..e3cd093 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,6 +2,25 @@ name: Build on: workflow_dispatch: + inputs: + build-version: + description: 'Electron version to build' + required: true + default: '31.0.0' + type: choice + options: + - 29.0.0 + - 30.0.0 + - 31.0.0 + test-version: + description: 'Electron version to test build' + required: true + default: '31.6.0' + type: choice + options: + - 29.4.6 + - 30.5.1 + - 31.6.0 env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true # required to setup CSC @@ -12,13 +31,13 @@ jobs: build: runs-on: ${{ matrix.os }} strategy: - fail-fast: false + # fail-fast: false matrix: - electron: [29.0.0, 30.0.0, 31.0.0] + # electron: [29.0.0, 30.0.0, 31.0.0] # electron: [29.0.0] os: [windows-2022] - name: build ${{ matrix.os }}-v${{ matrix.electron }} + name: build ${{ matrix.os }}-v${{ inputs.build-version }} steps: - name: Checkout code @@ -27,7 +46,8 @@ jobs: - name: Setup env uses: ./.github/actions/setup-env with: - electron: ${{ matrix.electron }} + electron: ${{ inputs.build-version }} + os: ${{ matrix.os }} - name: install node-gyp run: npm i -g node-gyp @@ -35,41 +55,41 @@ jobs: - uses: agracio/github-substring-action@v1.0.0 id: electron_version with: - value: "${{ matrix.electron }}" + value: "${{ inputs.build-version }}" length_from_start: 2 - name: Create release folder run: | - mkdir "release\ia32\${{ matrix.electron }}" - mkdir "release\x64\${{ matrix.electron }}" - mkdir "release\arm64\${{ matrix.electron }}" + mkdir "release\ia32\${{ inputs.build-version }}" + mkdir "release\x64\${{ inputs.build-version }}" + mkdir "release\arm64\${{ inputs.build-version }}" - name: Build ia32 timeout-minutes: 30 run: | - node-gyp configure build --target=${{ matrix.electron }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=ia32 - cmd /c copy /y build\Release\edge_*.node release\ia32\${{ matrix.electron }} + node-gyp configure build --target=${{ inputs.build-version }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=ia32 + cmd /c copy /y build\Release\edge_*.node release\ia32\${{ inputs.build-version }} cmd /c rmdir /S /Q build - name: Build x64 timeout-minutes: 30 run: | - node-gyp configure build --target=${{ matrix.electron }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=x64 - cmd /c copy /y build\Release\edge_*.node release\x64\${{ matrix.electron }} + node-gyp configure build --target=${{ inputs.build-version }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=x64 + cmd /c copy /y build\Release\edge_*.node release\x64\${{ inputs.build-version }} cmd /c rmdir /S /Q build - name: Build arm64 timeout-minutes: 30 shell: pwsh run: | - node-gyp configure --target=${{ matrix.electron }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=arm64 + node-gyp configure --target=${{ inputs.build-version }} --disturl=https://electronjs.org/headers --runtime=electron --release --arch=arm64 (Get-Content -Raw build/build_managed.vcxproj) -replace 'Strict', '' | Out-File -Encoding Utf8 build/build_managed.vcxproj (Get-Content -Raw build/edge_coreclr.vcxproj) -replace 'Strict', '' | Out-File -Encoding Utf8 build/edge_coreclr.vcxproj (Get-Content -Raw build/edge_nativeclr.vcxproj) -replace 'Strict', '' | Out-File -Encoding Utf8 build/edge_nativeclr.vcxproj node-gyp build - cmd /c copy /y build\Release\edge_*.node release\arm64\${{ matrix.electron }} + cmd /c copy /y build\Release\edge_*.node release\arm64\${{ inputs.build-version }} cmd /c rmdir /S /Q build @@ -77,7 +97,7 @@ jobs: uses: actions/upload-artifact@v4 if: success() with: - name: ${{ matrix.electron }} + name: ${{ inputs.build-version }} path: | release @@ -86,12 +106,12 @@ jobs: needs: build strategy: matrix: - electron: [29.4.6, 30.5.1, 31.6.0] + # electron: [29.4.6, 30.5.1, 31.6.0] # electron: [29.4.6] os: [windows-2022] - fail-fast: false + # fail-fast: false - name: test ${{ matrix.os }}-v${{ matrix.electron }} + name: test ${{ matrix.os }}-v${{ inputs.test-version }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -99,13 +119,14 @@ jobs: - name: Setup env uses: ./.github/actions/setup-env with: - electron: ${{ matrix.electron }} + electron: ${{ inputs.test-version }} + os: ${{ matrix.os }} replace-version: true - uses: agracio/github-substring-action@v1.0.0 id: electron_version with: - value: ${{ matrix.electron }} + value: ${{ inputs.test-version }} length_from_start: 2 - name: Create release folder @@ -130,12 +151,12 @@ jobs: timeout-minutes: 10 uses: ./.github/actions/test-windows with: - electron: ${{ matrix.electron }} + electron: ${{ inputs.test-version }} - name: Test report uses: ./.github/actions/create-test-report with: - electron: ${{ matrix.electron }} + electron: ${{ inputs.test-version }} os: ${{ matrix.os }} name: 'build-tests'