@@ -162,3 +162,63 @@ jobs:
162162 ASHERAH_KMS_MODE : static
163163 CUCUMBER_PUBLISH_QUIET : true
164164 run : bin/cross-language-test.sh
165+
166+ cross_language_tests_macos :
167+ runs-on : macos-latest
168+ name : cross-language-tests-macos
169+ env :
170+ MYSQL_HOSTNAME : 127.0.0.1
171+ MYSQL_DATABASE : testdb
172+ MYSQL_USERNAME : root
173+ MYSQL_PASSWORD : password
174+
175+ steps :
176+ - uses : actions/checkout@v6
177+
178+ - name : Setup Ruby
179+ uses : ruby/setup-ruby@v1
180+ with :
181+ ruby-version : 3.2
182+ bundler : default
183+ bundler-cache : true
184+
185+ - name : Install and start MySQL
186+ run : |
187+ brew install mysql
188+ brew services start mysql
189+
190+ # Wait for MySQL to be ready
191+ for i in {1..30}; do
192+ if mysqladmin ping -h127.0.0.1 --silent 2>/dev/null; then
193+ echo "MySQL is up"
194+ break
195+ fi
196+ echo "Waiting for MySQL... ($i/30)"
197+ sleep 2
198+ done
199+
200+ # Set root password and create database
201+ mysql -u root -h 127.0.0.1 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${{ env.MYSQL_PASSWORD }}';"
202+ mysql -u root -h 127.0.0.1 -p${{ env.MYSQL_PASSWORD }} -e "CREATE DATABASE IF NOT EXISTS ${{ env.MYSQL_DATABASE }};"
203+
204+ - name : Download binary for current platform
205+ run : |
206+ bundle exec rake download
207+
208+ - name : Set up Go
209+ uses : actions/setup-go@v6.3.0
210+ with :
211+ go-version : 1.24
212+
213+ - name : Test Cross-Language
214+ env :
215+ TEST_DB_NAME : ${{ env.MYSQL_DATABASE }}
216+ TEST_DB_PASSWORD : ${{ env.MYSQL_PASSWORD }}
217+ TEST_DB_HOSTNAME : ${{ env.MYSQL_HOSTNAME }}
218+ TEST_DB_USER : ${{ env.MYSQL_USERNAME }}
219+ TEST_DB_PORT : 3306
220+ ASHERAH_SERVICE_NAME : service
221+ ASHERAH_PRODUCT_NAME : product
222+ ASHERAH_KMS_MODE : static
223+ CUCUMBER_PUBLISH_QUIET : true
224+ run : bin/cross-language-test.sh
0 commit comments