# This workflow will build and test the Rails application name: Build and Test Rails Application on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest services: postgres: image: postgres:latest env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: debshots_test ports: - 5432:5432 options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v2 - name: Install Ruby run: | sudo apt-get update sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build ~/.rbenv/plugins/ruby-build/install.sh ruby-build 3.2.4 /opt/hostedtoolcache/Ruby/3.2.4/x64 touch /opt/hostedtoolcache/Ruby/3.2.4/x64.complete - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.x - name: Install dependencies run: | gem install bundler bundle install - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' - name: Install Yarn run: npm install -g yarn - name: Install Node.js dependencies run: yarn install - name: Set up database run: | bundle exec rails db:create db:migrate env: RAILS_ENV: test DATABASE_URL: postgres://postgres:postgres@localhost:5432/debshots_test - name: Run tests run: bundle exec rails test env: RAILS_ENV: test DATABASE_URL: postgres://postgres:postgres@localhost:5432/debshots_test - name: Build assets run: bundle exec rails assets:precompile env: RAILS_ENV: production