From be8ba6a38a087e38860cb4969f880512bd1cd1de Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Wed, 11 Oct 2023 11:40:11 +0200 Subject: [PATCH] Run tests on CI There's a DB matrix so we can plug in running the tests against Postgres and SQLite later on, but just running MySQL for now. --- .github/workflows/main.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..29819e64 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,35 @@ +name: Build +on: [push, pull_request] + +jobs: + tests: + name: Tests + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + ruby-version: [3.2.2] + database: [mysql] + services: + mysql: + image: mysql:8.0.31 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: "yes" + ports: + - 33060:3306 + options: --health-cmd "mysql -h localhost -e \"select now()\"" --health-interval 1s --health-timeout 5s --health-retries 30 + env: + TARGET_DB: ${{ matrix.database }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Setup Ruby and install gems + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true + - name: Setup test database + run: | + bin/rails db:setup + - name: Run tests + run: bin/rails test