Merge pull request #445 from satikaj/8.0.x #714
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Unit Tests | |
on: | |
push: | |
paths-ignore: | |
- "*.md" | |
- "docs/**" | |
pull_request: | |
paths-ignore: | |
- "*.md" | |
- "docs/**" | |
env: | |
RAILS_ENV: "test" | |
DF_STUDENT_WORK_DIR: "/student-work" | |
DF_INSTITUTION_HOST: "http://localhost:3000" | |
DF_INSTITUTION_PRODUCT_NAME: "OnTrack" | |
DF_SECRET_KEY_BASE: "test-secret-key-test-secret-key!" | |
DF_SECRET_KEY_ATTR: "test-secret-key-test-secret-key!" | |
DF_SECRET_KEY_DEVISE: "test-secret-key-test-secret-key!" | |
DF_TEST_DB_ADAPTER: "mysql2" | |
DF_TEST_DB_HOST: "mariadb" | |
DF_TEST_DB_DATABASE: "doubtfire-test" | |
DF_TEST_DB_USERNAME: "dfire" | |
DF_TEST_DB_PASSWORD: "pwd" | |
OVERSEER_ENABLED: "0" | |
DF_ENCRYPTION_PRIMARY_KEY: "AMLOMYA5GV8B4fTK3VKMhVGn8WdvUW8g" | |
DF_ENCRYPTION_DETERMINISTIC_KEY: "anlmuJ6cB3bN3biXRbYvmPsC5ALPFqGG" | |
DF_ENCRYPTION_KEY_DERIVATION_SALT: "hzPR8D4qpOnAg7VeAhkhWw6JmmzKJB10" | |
DF_REDIS_SIDEKIQ_URL: "redis://redis:6379/0" | |
jobs: | |
unit-tests: | |
runs-on: ubuntu-latest | |
services: | |
mariadb: | |
image: mariadb | |
env: | |
MARIADB_USER: ${{ env.DF_TEST_DB_USERNAME }} | |
MARIADB_PASSWORD: ${{ env.DF_TEST_DB_PASSWORD }} | |
MARIADB_DATABASE: ${{ env.DF_TEST_DB_DATABASE }} | |
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: yes # This is required or the healthcheck script can't connect to the db | |
options: --health-cmd "/usr/local/bin/healthcheck.sh --connect --innodb_initialized" --health-interval 10s --health-timeout 5s --health-retries 5 | |
redis: | |
image: redis:7.0 | |
options: --health-cmd "redis-cli ping | grep PONG" --health-interval 1s --health-timeout 5s --health-retries 5 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up docker buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build base doubtfire-api development image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: false | |
load: true | |
tags: doubtfire-api-development:local | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Populate database | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: doubtfire-api-development:local | |
options: > | |
-v ${{ github.workspace }}:/doubtfire | |
-e RAILS_ENV | |
-e DF_STUDENT_WORK_DIR | |
-e DF_INSTITUTION_HOST | |
-e DF_INSTITUTION_PRODUCT_NAME | |
-e DF_SECRET_KEY_BASE | |
-e DF_SECRET_KEY_ATTR | |
-e DF_SECRET_KEY_DEVISE | |
-e DF_TEST_DB_ADAPTER | |
-e DF_TEST_DB_HOST | |
-e DF_TEST_DB_DATABASE | |
-e DF_TEST_DB_USERNAME | |
-e DF_TEST_DB_PASSWORD | |
-e OVERSEER_ENABLED | |
-e DF_ENCRYPTION_PRIMARY_KEY | |
-e DF_ENCRYPTION_DETERMINISTIC_KEY | |
-e DF_ENCRYPTION_KEY_DERIVATION_SALT | |
-e DF_REDIS_SIDEKIQ_URL | |
run: bundle exec rake db:populate | |
- name: Run unit tests | |
uses: addnab/docker-run-action@v3 | |
with: | |
image: doubtfire-api-development:local | |
options: > | |
-v ${{ github.workspace }}:/doubtfire | |
-e RAILS_ENV | |
-e DF_STUDENT_WORK_DIR | |
-e DF_INSTITUTION_HOST | |
-e DF_INSTITUTION_PRODUCT_NAME | |
-e DF_SECRET_KEY_BASE | |
-e DF_SECRET_KEY_ATTR | |
-e DF_SECRET_KEY_DEVISE | |
-e DF_TEST_DB_ADAPTER | |
-e DF_TEST_DB_HOST | |
-e DF_TEST_DB_DATABASE | |
-e DF_TEST_DB_USERNAME | |
-e DF_TEST_DB_PASSWORD | |
-e OVERSEER_ENABLED | |
-e DF_ENCRYPTION_PRIMARY_KEY | |
-e DF_ENCRYPTION_DETERMINISTIC_KEY | |
-e DF_ENCRYPTION_KEY_DERIVATION_SALT | |
-e DF_REDIS_SIDEKIQ_URL | |
run: TERM=xterm bundle exec rails test |