Merge pull request #475 from b0ink/fix/mark-date-adjusted-comments-read #830
This file contains hidden or 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" | |
| LATEX_CONTAINER_NAME: doubtfire-texlive | |
| LATEX_BUILD_PATH: /texlive/shell/latex_build.sh | |
| DF_JPLAG_REPORT_DIR: /jplag/results | |
| 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 TexLive image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| file: texlive.Dockerfile | |
| push: false | |
| load: true | |
| tags: doubtfire-texlive-development:local | |
| cache-from: type=gha,scope=texlive | |
| cache-to: type=gha,mode=max,scope=texlive | |
| - name: Build JPlag image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| file: jplag.Dockerfile | |
| push: false | |
| load: true | |
| tags: doubtfire-jplag-development:local | |
| cache-from: type=gha,scope=jplag | |
| cache-to: type=gha,mode=max,scope=jplag | |
| - 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,scope=doubtfire-api | |
| cache-to: type=gha,mode=max,scope=doubtfire-api | |
| - name: Start TexLive service | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: doubtfire-texlive-development:local | |
| options: > | |
| --name ${{ env.LATEX_CONTAINER_NAME }} | |
| -v ${{ github.workspace }}/student-work:/student-work | |
| -v ${{ github.workspace }}/public/assets/images:/doubtfire/public/assets/images | |
| -v ${{ github.workspace }}/test_files:/doubtfire/test_files | |
| -v ${{ github.workspace }}/tmp/rails-latex:/workdir/texlive-latex | |
| --detach | |
| run: sleep infinity | |
| - name: Test TexLive container | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: doubtfire-api-development:local | |
| options: > | |
| -t | |
| -v ${{ github.workspace }}:/doubtfire | |
| -v /var/run/docker.sock:/var/run/docker.sock | |
| run: docker exec -t ${{ env.LATEX_CONTAINER_NAME }} lualatex -v | |
| - name: Start JPlag service | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: doubtfire-jplag-development:local | |
| options: > | |
| --name jplag | |
| -v ${{ github.workspace }}/student-work:/student-work | |
| -v ${{ github.workspace }}/jplag/results:${{ env.DF_JPLAG_REPORT_DIR }} | |
| -v ${{ github.workspace }}/tmp/jplag:/tmp/jplag | |
| --detach | |
| run: sleep infinity | |
| - name: Test JPlag service | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: doubtfire-api-development:local | |
| options: > | |
| -t | |
| -v ${{ github.workspace }}:/doubtfire | |
| -v /var/run/docker.sock:/var/run/docker.sock | |
| run: docker exec -t jplag ls /jplag/jplag-jar-with-dependencies.jar | |
| - name: Populate database | |
| uses: addnab/docker-run-action@v3 | |
| with: | |
| image: doubtfire-api-development:local | |
| options: > | |
| -v ${{ github.workspace }}:/doubtfire | |
| -v ${{ github.workspace }}/student-work:/student-work | |
| -v /var/run/docker.sock:/var/run/docker.sock | |
| -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 | |
| -e LATEX_CONTAINER_NAME | |
| -e LATEX_BUILD_PATH | |
| -e DF_JPLAG_REPORT_DIR | |
| 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 | |
| -v ${{ github.workspace }}/student-work:/student-work | |
| -v /var/run/docker.sock:/var/run/docker.sock | |
| -v ${{ github.workspace }}/jplag/results:${{ env.DF_JPLAG_REPORT_DIR }} | |
| -v ${{ github.workspace }}/tmp/jplag:/tmp/jplag | |
| -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 | |
| -e LATEX_CONTAINER_NAME | |
| -e LATEX_BUILD_PATH | |
| -e DF_JPLAG_REPORT_DIR | |
| run: TERM=xterm bundle exec rails test | |
| - name: Stop TexLive service | |
| run: docker rm -f ${{ env.LATEX_CONTAINER_NAME }} | |
| - name: Stop JPlag service | |
| run: docker rm -f jplag |