-
Notifications
You must be signed in to change notification settings - Fork 4k
GH-48904: [C++][FlightRPC][CI][Packaging] Upload ODBC installer into GitHub release as RC #48934
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
558318e
ef6d93d
5cf2fcd
c89d23a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -457,6 +457,25 @@ jobs: | |
| name: flight-sql-odbc-msi-installer | ||
| path: build/cpp/Apache Arrow Flight SQL ODBC-*-win64.msi | ||
| if-no-files-found: error | ||
| - name: Install ODBC MSI | ||
| shell: cmd | ||
| run: | | ||
| cd build/cpp | ||
| for %%f in ("Apache Arrow Flight SQL ODBC-*-win64.msi") do ( | ||
| echo Installing %%f silently with logs | ||
| msiexec /i "%%f" /qn /l*v "odbc-install.log" & type "odbc-install.log" | ||
| ) | ||
| - name: Check ODBC DLL installation | ||
| shell: cmd | ||
| run: | | ||
| for /d %%D in ("C:\Program Files\Apache Arrow Flight SQL ODBC *") do ( | ||
| if exist "%%D\bin" ( | ||
| tree "%%D\bin" /f | ||
| if exist "%%D\bin\arrow_flight_sql_odbc.dll" exit 0 | ||
| ) | ||
| ) | ||
| echo ODBC DLL not found | ||
| exit 1 | ||
|
|
||
| odbc-nightly: | ||
| needs: odbc | ||
|
|
@@ -494,6 +513,59 @@ jobs: | |
| remote_key: ${{ secrets.NIGHTLIES_RSYNC_KEY }} | ||
| remote_host_key: ${{ secrets.NIGHTLIES_RSYNC_HOST_KEY }} | ||
|
|
||
| odbc-check-tags: | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Modified the tag to be triggered only on RCs.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why do we need this? Can we use the following if: github.ref_type == 'tag' && contains(github.ref_name, '*-rc*')or if: github.ref_type == 'tag'and diff --git a/.github/workflows/cpp_extra.yml b/.github/workflows/cpp_extra.yml
index 49995752fa..9edec1f46b 100644
--- a/.github/workflows/cpp_extra.yml
+++ b/.github/workflows/cpp_extra.yml
@@ -43,7 +43,7 @@ on:
- 'format/Flight.proto'
- 'testing'
tags:
- - '**'
+ - 'apache-arrow-*-rc*'
pull_request:
paths:
- '.dockerignore' |
||
| needs: odbc | ||
| name: ODBC Check RC Tag | ||
| runs-on: ubuntu-latest | ||
| outputs: | ||
| rc-tag: ${{ steps.check-rc.outputs.rc-tag }} | ||
| if: github.ref_type == 'tag' && github.repository == 'apache/arrow' | ||
| steps: | ||
| - name: Check Arrow RC Tag | ||
| id: check-rc | ||
| run: | | ||
| if [[ "${GITHUB_REF_NAME}" =~ ^apache-arrow-.*-rc.*$ ]]; then | ||
| echo "RC tag found" | ||
| echo "rc-tag=true" >> "${GITHUB_OUTPUT}" | ||
| else | ||
| echo "RC tag not found" | ||
| echo "rc-tag=false" >> "${GITHUB_OUTPUT}" | ||
| fi | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. TODO (for this PR): Will be looking into headless MSI install and a smoke test for checking the DLL locations
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The MSI install has been added and tested in CI: |
||
|
|
||
| odbc-release: | ||
| needs: odbc-check-tags | ||
| name: ODBC release | ||
| runs-on: ubuntu-latest | ||
| if: needs.odbc-check-tags.outputs.rc-tag == 'true' | ||
| 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@v7 | ||
| with: | ||
| name: flight-sql-odbc-msi-installer | ||
| # Upload ODBC as GitHub release if release candidate tag is used | ||
| - 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 \ | ||
| "Apache Arrow Flight SQL ODBC"-*-win64.msi | ||
|
|
||
| report-extra-cpp: | ||
| if: github.event_name == 'schedule' && always() | ||
| needs: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -46,13 +46,14 @@ tag="apache-arrow-${version_with_rc}" | |
|
|
||
| archery crossbow download-artifacts --no-fetch ${CROSSBOW_JOB_ID} "$@" | ||
|
|
||
| # Download Linux packages. | ||
| # Download Linux packages and ODBC MSI. | ||
| gh release download "${tag}" \ | ||
| --dir "packages/${CROSSBOW_JOB_ID}" \ | ||
| --pattern "almalinux-*.tar.gz" \ | ||
| --pattern "amazon-linux-*.tar.gz" \ | ||
| --pattern "centos-*.tar.gz" \ | ||
| --pattern "debian-*.tar.gz" \ | ||
| --pattern "ubuntu-*.tar.gz" \ | ||
| --pattern "Apache.Arrow.Flight.SQL.ODBC-*-win64.msi" \ | ||
|
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. GitHub inserts periods in uploaded file name with spaces, this is behavior by design in GitHub, see:
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we avoid using spaces in MSI file name? |
||
| --repo "${REPOSITORY:-apache/arrow}" \ | ||
| --skip-existing | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need to add signing command line something like the following here: diff --git a/dev/release/05-binary-upload.sh b/dev/release/05-binary-upload.sh
index f628cce0e0..e66b5af646 100755
--- a/dev/release/05-binary-upload.sh
+++ b/dev/release/05-binary-upload.sh
@@ -98,6 +98,9 @@ upload_to_github_release() {
shasum -a 512 "${base_name}" >"${base_name}.sha512"
popd
fi
+ if [[ "${base_name}" = *.msi ]]; then
+ jsign ... "${dist_dir}/${base_name}"
+ fi
done
gh release upload \
--repo apache/arrow \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use the default PowerShell instead of
cmd?