From 8031e663297e9fff89688123ac1b6170ad1a3b7e Mon Sep 17 00:00:00 2001 From: Yasuo Honda Date: Mon, 30 Nov 2020 23:04:34 +0900 Subject: [PATCH] Enable GitHub Actions - Use ubuntu-20.04 - Use Ruby 2.7 - CI against SQLite3, MySQL and PostgreSQL databases - CI against Rails v6.1.0.rc1, v6.0.3, 6-0-stable, 5-2-stable and v5.2.4 - Add MYSQL_USERNAME and MYSQL_PASSWORD environment variables --- .github/workflows/test.yml | 111 +++++++++++++++++++++++++++++++++++++ spec/support/schema.rb | 2 + 2 files changed, 113 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..483c3b7 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,111 @@ +name: Test + +on: + push: + pull_request: + +jobs: + sqlite3: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + rails: + - v6.1.0.rc1 + - v6.0.3 + - 6-0-stable + - 5-2-stable + - v5.2.4 + env: + DB: sqlite3 + RAILS: ${{ matrix.rails }} + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + - name: Install dependencies + run: bundle install + - name: Run tests + run: bundle exec rspec + + mysql: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + rails: + - v6.1.0.rc1 + - v6.0.3 + - 6-0-stable + - 5-2-stable + - v5.2.4 + env: + DB: mysql + RAILS: ${{ matrix.rails }} + MYSQL_USERNAME: root + MYSQL_PASSWORD: root + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + - name: Startup MySQL + run: | + sudo systemctl start mysql.service + - name: Setup databases + run: | + mysql --user=root --password=root --host=127.0.0.1 -e 'create database ransack collate utf8_general_ci;'; + mysql --user=root --password=root --host=127.0.0.1 -e 'use ransack;show variables like "%character%";show variables like "%collation%";'; + - name: Install dependencies + run: bundle install + - name: Run tests + run: bundle exec rspec + + postgres: + runs-on: ubuntu-20.04 + strategy: + fail-fast: false + matrix: + rails: + - v6.1.0.rc1 + - v6.0.3 + - 6-0-stable + - 5-2-stable + - v5.2.4 + env: + DB: postgres + RAILS: ${{ matrix.rails }} + DATABASE_USERNAME: postgres + DATABASE_PASSWORD: postgres + DATABASE_HOST: 127.0.0.1 + services: + postgres: + image: postgres + ports: + - 5432:5432 + env: + POSTGRES_PASSWORD: postgres + POSTGRES_HOST_AUTH_METHOD: trust + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + - name: Setup databases + run: | + psql -h localhost -p 5432 -W postgres -c 'create database ransack;' -U postgres; + - name: Install dependencies + run: bundle install + - name: Run tests + run: bundle exec rspec diff --git a/spec/support/schema.rb b/spec/support/schema.rb index 70df22b..ee09a02 100644 --- a/spec/support/schema.rb +++ b/spec/support/schema.rb @@ -6,6 +6,8 @@ when 'mysql', 'mysql2' ActiveRecord::Base.establish_connection( adapter: 'mysql2', database: 'ransack', + username: ENV.fetch("MYSQL_USERNAME") { "root" }, + password: ENV.fetch("MYSQL_PASSWORD") { "" }, encoding: 'utf8' ) when 'pg', 'postgres', 'postgresql'