Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
rjlynch committed Apr 26, 2024
1 parent 37feca2 commit 96d7dc5
Show file tree
Hide file tree
Showing 2 changed files with 70 additions and 41 deletions.
53 changes: 12 additions & 41 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,24 @@ name: CI

on: push
jobs:
test_and_lint:
lint:
uses: ".github/workflows/setup_application_environment"
- name: Linting - ShellCheck
run: bin/rake shellcheck
- name: Linting - Brakeman
run: bundle exec brakeman -c config/brakeman.ignore
- name: Linting - Standardrb
run: bin/rails standard

test:
uses: ".github/workflows/setup_application_environment"
strategy:
fail-fast: false
matrix:
ci_node_total: [8]
ci_node_index: [0, 1, 2, 3, 4, 5, 6, 7]
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11-alpine
ports:
- '5432:5432'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: dfe-teachers-payment-service_test
env:
RAILS_ENV: test
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_USERNAME: postgres
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_PASSWORD: password
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_HOST: localhost
CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
- name: Setup yarn
run: npm install -g yarn
- name: Install Node packages
run: yarn install
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2.0
bundler-cache: true
- name: Precompile assets
run: bundle exec rails assets:precompile
- name: Linting - ShellCheck
run: bin/rake shellcheck
- name: Linting - Brakeman
run: bundle exec brakeman -c config/brakeman.ignore
- name: Linting - Standardrb
run: bin/rails standard
- name: Prepare DB
run: bin/rails db:schema:load
run: bin/rails db:prepare
- name: Run unit tests
env:
SPEC_TYPE: unit
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/setup_application_environment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Setup application environment

jobs:
setup_application_environment:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11-alpine
ports:
- '5432:5432'
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: dfe-teachers-payment-service_test
env:
RAILS_ENV: test
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_USERNAME: postgres
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_PASSWORD: password
DFE_TEACHERS_PAYMENT_SERVICE_DATABASE_HOST: localhost
CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Setup yarn
run: npm install -g yarn
- name: Install Node packages
run: yarn install
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: Restore assets cache
id: assets-cache
uses: actions/cache/restore@v4
with:
path: |
public/assets
key: assets-${{ hashFiles('**/app/assets/**/*', '**/app/javascript/**/*') }}
restore-keys: |
${{ runner.os }}-assets-
- name: Prepare assets
if: ${{ steps.assets-cache.outputs.cache-hit != 'true' }}
run: bin/rails test:prepare

- name: Save assets cache
if: ${{ steps.assets-cache.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
with:
path: |
public/assets
public/packs-test
key: ${{ steps.assets-cache.outputs.cache-primary-key }}

0 comments on commit 96d7dc5

Please sign in to comment.