Skip to content

Handling connection failures by DB.futureLocalTx (#2195) #25

Handling connection failures by DB.futureLocalTx (#2195)

Handling connection failures by DB.futureLocalTx (#2195) #25

Workflow file for this run

name: CI
on:
pull_request:
push:
schedule:
- cron: '0 6 * * 3'
jobs:
test:
timeout-minutes: 50
services:
mysql:
image: mysql:8
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: scalikejdbc
MYSQL_USER: sa
MYSQL_PASSWORD: sa
options: --health-cmd "mysqladmin ping -h localhost" --health-interval 20s --health-timeout 10s --health-retries 10
postgres:
image: postgres:9.4
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: scalikejdbc
ports:
- 5432:5432
strategy:
fail-fast: false
matrix:
include:
- name: scripted
db: mysql
java: 8
- name: scripted
db: postgresql
java: 8
- name: test
db: hsqldb
java: 8
- name: test
db: mysql
java: 8
- name: test
db: postgresql
java: 8
- name: test
db: h2
java: 8
- name: test
db: mysql
java: 11
- name: test
db: mysql
java: 21
- name: scala_3
db: mysql
java: 8
- name: scala_3
db: postgresql
java: 8
runs-on: ubuntu-latest
steps:
- name: setup database
run: |
while ! mysqladmin ping --user=root --password=root -h"127.0.0.1" ; do
echo "await mysql start"
sleep 1
done
if [[ "${{ matrix.db }}" == "mysql" ]]; then
mysql -h 127.0.0.1 -e "GRANT ALL ON *.* TO sa@'%';FLUSH PRIVILEGES;" -uroot -proot
mysql -h 127.0.0.1 -e "ALTER DATABASE scalikejdbc CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" -uroot -proot
fi
if [[ "${{ matrix.db }}" == "postgresql" ]]; then
export PGPASSWORD="postgres"
psql -h 127.0.0.1 -p 5432 -c "CREATE ROLE sa WITH SUPERUSER LOGIN PASSWORD 'sa';" -U postgres
fi
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: ${{matrix.java}}
distribution: temurin
- uses: coursier/cache-action@v6
timeout-minutes: 5
- name: copy jdbc settings
run: |
if [[ "${{ matrix.name }}" == "scripted" ]]; then
cp scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/${{ matrix.db }}.properties scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/gen/test.properties &&
cp scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/${{ matrix.db }}.properties scalikejdbc-mapper-generator/src/sbt-test/scalikejdbc-mapper-generator/twenty-three/test.properties
fi
rm scalikejdbc-core/src/test/resources/jdbc.properties &&
cp -p scalikejdbc-core/src/test/resources/jdbc_${{ matrix.db }}.properties scalikejdbc-core/src/test/resources/jdbc.properties
- run: rm project/sbt-pgp.sbt
- run: rm project/sbt-updates.sbt
- if: ${{ matrix.db == 'mysql' }}
run:
# TODO flaky test
echo 'ThisBuild / Test / testOptions += Tests.Exclude(Seq("somewhere.DatabasePublisherTckTest"))' > skip-mysql.sbt
- run: |
case ${{ matrix.name }} in
"scala_3")
sbt -v \
"+ scalafmtCheckAll" \
scalafmtSbtCheck \
SetScala3 \
root213/test \
root213/publishLocal
;;
"test")
./test.sh
;;
"scripted")
./scripted.sh
;;
*)
echo "unknown job"
exit 1
esac
- run: rm -rf "$HOME/.ivy2/local" || true
format:
timeout-minutes: 20
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: 11
distribution: temurin
- run: |
sbt "+ scalafmtAll" scalafmtSbt
git diff --exit-code
- if: ${{ (github.event_name == 'pull_request') && failure() }}
run: |
REVIEWDOG_VERSION="0.16.0"
FILE_NAME="reviewdog_${REVIEWDOG_VERSION}_Linux_x86_64"
wget -q https://github.com/reviewdog/reviewdog/releases/download/v${REVIEWDOG_VERSION}/${FILE_NAME}.tar.gz &&
gunzip ${FILE_NAME}.tar.gz &&
tar -xf ${FILE_NAME}.tar &&
chmod +x ./reviewdog &&
./reviewdog -version
export REVIEWDOG_GITHUB_API_TOKEN=${{ secrets.GITHUB_TOKEN }}
TMPFILE=$(mktemp)
git diff > "${TMPFILE}"
./reviewdog \
-name="scalafmt" \
-f=diff \
-f.diff.strip=1 \
-reporter="github-pr-review" \
-filter-mode="diff_context" \
-fail-on-error="false" \
-level="warning" <"${TMPFILE}"