From 894bd7ffc7575756756a21cbbadd95c60e8ee674 Mon Sep 17 00:00:00 2001 From: Oleh Fedorenko Date: Fri, 10 Nov 2023 17:50:41 +0000 Subject: [PATCH] Fixes #36913 - Set up GHA with matrix to run test on Ruby 2.7 --- .github/workflows/foreman.yml | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/foreman.yml diff --git a/.github/workflows/foreman.yml b/.github/workflows/foreman.yml new file mode 100644 index 000000000000..81524da6c705 --- /dev/null +++ b/.github/workflows/foreman.yml @@ -0,0 +1,67 @@ +--- +name: Foreman + +on: + - pull_request + +env: + RAILS_ENV: test + DATABASE_URL: postgresql://postgres:password@localhost/test + DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true + BUNDLE_WITHOUT: "console:development:journald" + +jobs: + setup_matrix: + name: Setup matrix + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.build_matrix.outputs.matrix }} + steps: + - name: Build test matrix + id: build_matrix + uses: theforeman/gha-matrix-builder@v0 + test: + name: "develop with Ruby ${{ matrix.ruby }} and Node ${{ matrix.node }}" + runs-on: ubuntu-latest + needs: setup_matrix + services: + postgres: + image: 'postgres:12' + ports: ['5432:5432'] + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + env: + POSTGRES_PASSWORD: password + strategy: + fail-fast: false + matrix: + ruby: ${{ fromJson(needs.setup_matrix.outputs.matrix).ruby }} + node: ${{ fromJson(needs.setup_matrix.outputs.matrix).node }} + steps: + - run: sudo apt-get update + - run: sudo apt-get install build-essential libcurl4-openssl-dev zlib1g-dev libpq-dev libvirt-dev + - name: "Check out Foreman develop" + uses: actions/checkout@v4 + - name: "Set up Ruby ${{ matrix.ruby }}" + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + - name: Archive Gemfile.lock + uses: actions/upload-artifact@v3 + with: + name: Gemfile.lock + path: Gemfile.lock + - name: "Set up Node ${{ matrix.node }}" + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + - name: Prepare test env + run: | + bundle exec rake db:create + bundle exec rake db:migrate + - name: Run unit tests + run: bundle exec rake test:units + - name: Run functional tests + run: bundle exec rake test:functionals + - name: Run graphql tests + run: bundle exec rake test:graphql