forked from apache/arrow
-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (123 loc) · 5.38 KB
/
mac-build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
name: ODBC Driver for Mac
on:
push:
paths:
- '.github/workflows/win-build.yml'
- 'cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/**'
pull_request:
paths:
- '.github/workflows/win-build.yml'
- 'cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/**'
env:
CI_OUTPUT_PATH: "ci-output"
ODBC_LIB_PATH: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/lib"
ODBC_BIN_PATH: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/bin"
ODBC_BUILD_PATH: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/build"
TIMESTREAM_LOG_PATH: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/logs"
TIMESTREAM_LOG_LEVEL: "4"
ODBCINSTINI: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/lib/timestream-odbc-install.ini"
ODBCINI: "${{github.workspace}}/cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/odbc.ini"
BIG_TABLE_PAGINATION_TEST_ENABLE: "TRUE"
# # AAD Test environment variables. Uncomment out to use GitHub secrets to enable AAD integration tests
# ENABLE_AAD_TEST: "TRUE"
# AAD_APP_ID: ${{secrets.AAD_APP_ID}}
# AAD_ROLE_ARN: ${{secrets.AAD_ROLE_ARN}}
# AAD_IDP_ARN: ${{secrets.AAD_IDP_ARN}}
# AAD_TENANT: ${{secrets.AAD_TENANT}}
# AAD_USER: ${{secrets.AAD_USER}}
# AAD_USER_PWD: ${{secrets.AAD_USER_PWD}}
# AAD_CLIENT_SECRET: ${{secrets.AAD_CLIENT_SECRET}}
# # OKTA Test environment variables. Uncomment out to use GitHub secrets to enable AAD integration tests
# ENABLE_OKTA_TEST: "TRUE"
# OKTA_HOST: ${{secrets.OKTA_HOST}}
# OKTA_USER: ${{secrets.OKTA_USER}}
# OKTA_USER_PWD: ${{secrets.OKTA_USER_PWD}}
# OKTA_APP_ID: ${{secrets.OKTA_APP_ID}}
# OKTA_ROLE_ARN: ${{secrets.OKTA_ROLE_ARN}}
# OKTA_IDP_ARN: ${{secrets.OKTA_IDP_ARN}}
jobs:
build-mac:
runs-on: macos-11
steps:
- uses: actions/checkout@v2
- name: run-cppcheck
run: |
brew install cppcheck
cd cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver
sh run_cppcheck.sh
- name: upload-cppcheck-results
if: failure()
uses: actions/upload-artifact@v3
with:
name: cppcheck-results
path: cppcheck-results.log
- name: get-dependencies
run: |
brew tap homebrew/services
brew unlink unixodbc
brew install libiodbc
brew link --overwrite --force libiodbc
brew install cmake
brew install boost
- name: configure-and-build-driver
run: |
cd cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver
chmod +x build_mac_release64.sh
./build_mac_release64.sh
- name: update-environment-with-ODBC_DRIVER_VERSION
run: |
cd cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver
read -r ODBC_DRIVER_VERSION < ./src/ODBC_DRIVER_VERSION.txt
echo "ODBC_DRIVER_VERSION=$ODBC_DRIVER_VERSION" >> $GITHUB_ENV
- name: upload-package
uses: actions/upload-artifact@v3
with:
name: AmazonTimestreamODBC-${{env.ODBC_DRIVER_VERSION}}.pkg
path: ./cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/cmake-build64/AmazonTimestreamODBC-${{env.ODBC_DRIVER_VERSION}}.pkg
- name: register-odbc-driver
run: |
cd cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver
chmod +x scripts/register_driver_unix.sh
./scripts/register_driver_unix.sh
- name: run-unit-tests
id: rununittests
run: |
mkdir -p "${{env.TIMESTREAM_LOG_PATH}}"
export DYLD_LIBRARY_PATH=${{env.ODBC_LIB_PATH}}:$DYLD_LIBRARY_PATH
./cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/bin/timestream-odbc-unit-tests --catch_system_errors=false
- name: upload-unit-test-report
if: always()
uses: EnricoMi/publish-unit-test-result-action/composite@v1.30
with:
check_name: "MacOS Big Sur 11 Build Unit Test Results Check"
comment_title: "MacOS Big Sur 11 Build Unit Test Results"
files: ./odbc_unit_test_result.xml
- name: upload-unit-test-file
if: always() && (steps.rununittests.outcome == 'failure')
uses: actions/upload-artifact@v3
with:
name: odbc-unit-test-results
path: |
./odbc_unit_test_result.xml
./cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/logs/timestream_odbc_*.log
# TODO re-enable integration tests
# - name: run-integration-tests
# id: runintegrationtests
# run: |
# export DYLD_LIBRARY_PATH=${{env.ODBC_LIB_PATH}}:$DYLD_LIBRARY_PATH
# ./cpp/src/arrow/flight/sql/amazon-timestream-odbc-driver/build/odbc/bin/timestream-odbc-integration-tests --catch_system_errors=false
- name: upload-integration-test-report
if: always()
uses: EnricoMi/publish-unit-test-result-action/composite@v1.30
with:
check_name: "MacOS Big Sur 11 Build Integration Test Results Check"
comment_title: "MacOS Big Sur 11 Build Integration Test Results"
files: ./odbc_test_result.xml
- name: upload-integration-test-file
if: always() && (steps.runintegrationtests.outcome == 'failure')
uses: actions/upload-artifact@v3
with:
name: odbc-integration-test-results
path: |
./odbc_test_result.xml
./build/odbc/logs/timestream_odbc_*.log