kou commented on code in PR #49603:
URL: https://github.com/apache/arrow/pull/49603#discussion_r3270774224
##########
.github/workflows/cpp_extra.yml:
##########
@@ -684,6 +632,130 @@ jobs:
Write-Error "ODBC DLL not found"
exit 1
+ odbc-msvc-upload-dll:
+ needs: check-labels
+ name: ODBC Windows Upload Unsigned DLL
+ runs-on: windows-2022
+ if: >-
+ ${{
+ startsWith(github.ref_name, 'apache-arrow-') &&
+ contains(github.ref_name, '-rc') &&
+ !inputs.odbc_release_step
+ }}
+ timeout-minutes: 240
+ permissions:
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Build ODBC Windows
+ uses: ./.github/actions/odbc-windows
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Rename Unsigned ODBC DLL
+ run: |
+ Rename-Item `
+ -Path build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc.dll `
+ -NewName arrow_flight_sql_odbc_unsigned.dll
+ - name: Upload ODBC DLL to the job
+ uses: actions/upload-artifact@v7
+ with:
+ name: flight-sql-odbc-dll
+ path: build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc_unsigned.dll
+ if-no-files-found: error
Review Comment:
Why do we need this?
Can we upload the DLL in the `odbc-msvc` job instead?
##########
.github/workflows/cpp_extra.yml:
##########
@@ -684,6 +632,130 @@ jobs:
Write-Error "ODBC DLL not found"
exit 1
+ odbc-msvc-upload-dll:
+ needs: check-labels
+ name: ODBC Windows Upload Unsigned DLL
+ runs-on: windows-2022
+ if: >-
+ ${{
+ startsWith(github.ref_name, 'apache-arrow-') &&
+ contains(github.ref_name, '-rc') &&
+ !inputs.odbc_release_step
+ }}
+ timeout-minutes: 240
+ permissions:
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Build ODBC Windows
+ uses: ./.github/actions/odbc-windows
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Rename Unsigned ODBC DLL
+ run: |
+ Rename-Item `
+ -Path build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc.dll `
+ -NewName arrow_flight_sql_odbc_unsigned.dll
+ - name: Upload ODBC DLL to the job
+ uses: actions/upload-artifact@v7
+ with:
+ name: flight-sql-odbc-dll
+ path: build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc_unsigned.dll
+ if-no-files-found: error
+
+ odbc-dll-release:
+ needs: odbc-msvc-upload-dll
+ name: Upload Unsigned ODBC DLL
+ runs-on: ubuntu-latest
+ permissions:
+ # Upload to GitHub Release
+ contents: write
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Download the artifacts
+ uses: actions/download-artifact@v8
+ with:
+ name: flight-sql-odbc-dll
+ - name: Wait for creating GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ dev/release/utils-watch-gh-workflow.sh \
+ ${GITHUB_REF_NAME} \
+ release_candidate.yml
+ - name: Upload the artifacts to GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release upload ${GITHUB_REF_NAME} \
+ --clobber \
+ arrow_flight_sql_odbc_unsigned.dll
+
+ odbc-msvc-upload-msi:
+ needs: check-labels
+ name: ODBC Windows Build & Upload Unsigned MSI
+ runs-on: windows-2022
+ if: inputs.odbc_release_step
+ timeout-minutes: 240
+ permissions:
+ # Upload to GitHub Release
+ contents: write
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Download signed ODBC DLL
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release download $env:GITHUB_REF_NAME `
+ --pattern arrow_flight_sql_odbc.dll `
+ --clobber
+ - name: Build ODBC Windows
+ uses: ./.github/actions/odbc-windows
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Replace signed DLL with unsigned DLL
+ run: |
+ Move-Item `
+ -Path ./arrow_flight_sql_odbc.dll `
+ -Destination build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc.dll `
+ -Force
+ - name: Install WiX Toolset
+ shell: pwsh
+ run: |
+ Invoke-WebRequest -Uri
https://github.com/wixtoolset/wix/releases/download/v6.0.0/wix-cli-x64.msi
-OutFile wix-cli-x64.msi
+ Start-Process -FilePath wix-cli-x64.msi -ArgumentList '/quiet',
'Include_freethreaded=1' -Wait
+ echo "C:\Program Files\WiX Toolset v6.0\bin\" | Out-File -FilePath
$env:GITHUB_PATH -Encoding utf8 -Append
+ - name: Build MSI ODBC installer
+ shell: pwsh
+ run: |
+ # Verify WiX version
+ wix --version
+ cd build/cpp
+ cpack
+ - name: Upload the artifacts to GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ cd build/cpp
+ gh release upload $env:GITHUB_REF_NAME `
+ --clobber `
+ Apache-Arrow-Flight-SQL-ODBC-*-win64.msi
Review Comment:
How about moving these jobs to separated workflow (`package_odbc.yml`?) for
easy to understand?
##########
.github/workflows/cpp_extra.yml:
##########
@@ -622,6 +575,125 @@ jobs:
Write-Error "ODBC DLL not found"
exit 1
+ odbc-msvc-upload-dll:
+ needs: check-labels
+ name: ODBC Windows Upload Unsigned DLL
+ runs-on: windows-2022
+ if: inputs.odbc_upload == 'dll'
+ timeout-minutes: 240
+ permissions:
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Build ODBC Windows
+ uses: ./.github/actions/odbc-windows
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Name Unsigned ODBC DLL
+ run: |
+ Rename-Item `
+ -Path build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc.dll `
+ -NewName arrow_flight_sql_odbc_unsigned.dll
+ - name: Upload ODBC DLL to the job
+ uses: actions/upload-artifact@v7
+ with:
+ name: flight-sql-odbc-dll
+ path: build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc_unsigned.dll
+ if-no-files-found: error
+
+ odbc-dll-release:
+ needs: odbc-msvc-upload-dll
+ name: Upload Unsigned ODBC DLL
+ runs-on: ubuntu-latest
+ permissions:
+ # Upload to GitHub Release
+ contents: write
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Download the artifacts
+ uses: actions/download-artifact@v8
+ with:
+ name: flight-sql-odbc-dll
+ - name: Wait for creating GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ dev/release/utils-watch-gh-workflow.sh \
+ ${GITHUB_REF_NAME} \
+ release_candidate.yml
+ - name: Upload the artifacts to GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release upload ${GITHUB_REF_NAME} \
+ --clobber \
+ arrow_flight_sql_odbc_unsigned.dll
+
+ odbc-msvc-upload-msi:
+ needs: check-labels
+ name: ODBC Windows Upload Unsigned MSI
+ runs-on: windows-2022
+ if: inputs.odbc_upload == 'msi'
+ timeout-minutes: 240
+ permissions:
+ # Upload to GitHub Release
+ contents: write
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Download signed ODBC DLL
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release download $env:GITHUB_REF_NAME `
+ --pattern arrow_flight_sql_odbc.dll `
+ --clobber
+ - name: Build ODBC Windows
Review Comment:
Could you add a comment why we need to rebuild everything?
##########
.github/workflows/cpp_extra.yml:
##########
@@ -684,6 +632,130 @@ jobs:
Write-Error "ODBC DLL not found"
exit 1
+ odbc-msvc-upload-dll:
+ needs: check-labels
+ name: ODBC Windows Upload Unsigned DLL
+ runs-on: windows-2022
+ if: >-
+ ${{
+ startsWith(github.ref_name, 'apache-arrow-') &&
+ contains(github.ref_name, '-rc') &&
+ !inputs.odbc_release_step
+ }}
+ timeout-minutes: 240
+ permissions:
+ packages: write
+ env: *odbc_msvc_env
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Build ODBC Windows
+ uses: ./.github/actions/odbc-windows
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Rename Unsigned ODBC DLL
+ run: |
+ Rename-Item `
+ -Path build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc.dll `
+ -NewName arrow_flight_sql_odbc_unsigned.dll
+ - name: Upload ODBC DLL to the job
+ uses: actions/upload-artifact@v7
+ with:
+ name: flight-sql-odbc-dll
+ path: build/cpp/${{ env.ARROW_BUILD_TYPE
}}/arrow_flight_sql_odbc_unsigned.dll
+ if-no-files-found: error
+
+ odbc-dll-release:
+ needs: odbc-msvc-upload-dll
+ name: Upload Unsigned ODBC DLL
+ runs-on: ubuntu-latest
+ permissions:
+ # Upload to GitHub Release
+ contents: write
+ steps:
+ - name: Checkout Arrow
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 0
+ submodules: recursive
+ - name: Download the artifacts
+ uses: actions/download-artifact@v8
+ with:
+ name: flight-sql-odbc-dll
+ - name: Wait for creating GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ dev/release/utils-watch-gh-workflow.sh \
+ ${GITHUB_REF_NAME} \
+ release_candidate.yml
+ - name: Upload the artifacts to GitHub Release
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ gh release upload ${GITHUB_REF_NAME} \
+ --clobber \
+ arrow_flight_sql_odbc_unsigned.dll
Review Comment:
How about uploading the unsigned DLL to GitHub Release in the `odbc-msvc`
job?
We can use `if: startsWith(github.ref_name, 'apache-arrow-') &&
contains(github.ref_name, '-rc')` for a step that uploads the unsigned DLL to
GitHub Release.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]