Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 104 additions & 35 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,41 @@
name: CI

# CI uses Ruby 2.7.8 (>= 2.7 required by workarea-core).
# Bundler is pinned to match Gemfile.lock and maintain Ruby 2.7 compatibility.
env:
RUBY_VERSION: 2.7.8
BUNDLER_VERSION: 2.4.22

on:
push:
paths-ignore:
- 'demo/**'
- 'docs/**'
- '**.md'
pull_request:
branches:
- next
paths-ignore:
- 'demo/**'
- 'docs/**'
- '**.md'

jobs:
static_analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: workarea-commerce/ci/bundler-audit@v1
- uses: ruby/setup-ruby@v1
with:
args: '--ignore CVE-2020-8161'
- uses: workarea-commerce/ci/rubocop@v1
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- name: Bundler Audit
continue-on-error: true
run: bundle exec bundle audit check --update --ignore CVE-2020-8161
- name: Rubocop
continue-on-error: true
run: bundle exec rubocop
- uses: workarea-commerce/ci/eslint@v1
with:
args: '{admin,core,storefront}/{app,test}/**/*.js'
Expand All @@ -28,35 +49,53 @@ jobs:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd admin && bin/rails test -b
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd admin && bin/rails test -b

admin_teaspoon:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd admin && bin/rails teaspoon
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd admin && bin/rails teaspoon

admin_system_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd admin && bin/rails test test/system/**/*_test.rb -b
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd admin && bin/rails test test/system/**/*_test.rb -b
- uses: actions/upload-artifact@v4
if: failure()
with:
Expand All @@ -69,59 +108,89 @@ jobs:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd core && bin/rails teaspoon
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd core && bin/rails teaspoon

core_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd core && bin/rails test test/**/*_test.rb -b
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd core && bin/rails test test/**/*_test.rb -b

storefront_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd storefront && bin/rails test -b
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd storefront && bin/rails test -b

storefront_teaspoon:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd storefront && bin/rails teaspoon
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd storefront && bin/rails teaspoon

storefront_system_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
ruby-version: ${{ env.RUBY_VERSION }}
bundler: ${{ env.BUNDLER_VERSION }}
bundler-cache: true
- uses: workarea-commerce/ci/test@v1
with:
command: cd storefront && bin/rails test test/system/**/*_test.rb -b
- name: Install docker-compose
run: sudo apt-get update && sudo apt-get install -y docker-compose
- name: Start services
run: bundle exec $(bundle exec rake -T | grep services:up | sed 's/\w*#.*//')
- name: Wait for Elasticsearch
run: timeout 300 bash -c 'while [[ "$(curl -s -o /dev/null -w "%{http_code}" localhost:9200)" != "200" ]]; do sleep 1; done' || false
- name: Run tests
run: cd storefront && bin/rails test test/system/**/*_test.rb -b
- uses: actions/upload-artifact@v4
if: failure()
with:
Expand Down
Loading