diff --git a/.github/workflows/build-test-lint.yml b/.github/workflows/build-test-lint.yml
deleted file mode 100644
index 752c2f4f6a..0000000000
--- a/.github/workflows/build-test-lint.yml
+++ /dev/null
@@ -1,145 +0,0 @@
-name: 'Build Test Lint'
-run-name: Build Test Lint of ${{ github.ref_name }} by @${{ github.actor }}
-on:
- push:
- branches:
- - main
- pull_request:
- branches:
- - main
- workflow_dispatch:
- inputs:
- debug_enabled:
- type: boolean
- description: 'Run the build with tmate debugging enabled (https://github.com/marketplace/actions/debugging-with-tmate)'
- required: false
- default: false
-
-env:
- REGISTRY: ghcr.io
- DOCKER_BUILDKIT: 1
- COMPOSE_DOCKER_CLI_BUILD: 1
-
-jobs:
- lint:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: ruby/setup-ruby@v1
- with:
- ruby-version: '3.2'
- bundler-cache: true
- cache-version: 1
- - name: Rubocop
- run: bundle install && bundle exec rubocop --parallel --format progress --format junit --out rubocop.xml --display-only-failed
- - name: Archive rubocop reports
- uses: actions/upload-artifact@v4
- if: always()
- with:
- name: rubocop-reports
- path: 'rubocop*.xml'
-
- build:
- needs: lint
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ci_test_app: [dassie,koppie]
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
- - name: Build and export
- uses: docker/build-push-action@v5
- with:
- build-args: |
- APP_PATH=.${{ matrix.ci_test_app }}
- cache-from: type=gha
- cache-to: type=gha, mode=max
- context: .
- target: hyrax-engine-dev
- tags: samvera/${{ matrix.ci_test_app }}:latest,samvera/${{ matrix.ci_test_app }}:${{ github.sha }}
- outputs: type=docker,dest=/tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
- - name: Upload built image artifact
- uses: actions/upload-artifact@v4
- with:
- name: ${{ matrix.ci_test_app }}-image
- path: /tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
-
- test:
- needs: build
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ci_test_app: [dassie,koppie]
- ci_node_total: [8]
- ci_node_index: [0,1,2,3,4,5,6,7]
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Setup tmate debug session
- uses: mxschmitt/action-tmate@v3
- if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
- with:
- limit-access-to-actor: true
- detached: true
- - name: Download built image artifact
- uses: actions/download-artifact@v4
- with:
- name: ${{ matrix.ci_test_app }}-image
- path: /tmp
- - name: Start containers
- run: |
- docker load --input /tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
- docker image ls -a
- docker compose -f docker-compose-${{ matrix.ci_test_app }}.yml up -d --quiet-pull --pull missing --no-build
- - name: RSpec
- env:
- CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
- CI_NODE_INDEX: ${{ matrix.ci_node_index }}
- run: >-
- docker compose -f docker-compose-${{ matrix.ci_test_app }}.yml exec -T -w /app/samvera/hyrax-engine web sh -c
- "bundle install && yarn install && rspec_booster --job ${{ matrix.ci_node_index }}/${{ matrix.ci_node_total }}"
- - name: Capture Container Logs
- if: always()
- uses: jwalton/gh-docker-logs@v2
- with:
- images: 'seleniarm/standalone-chromium'
- - name: Move Test Files
- if: always()
- env:
- CI_TEST_APP: ${{ matrix.ci_test_app }}
- CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
- CI_NODE_INDEX: ${{ matrix.ci_node_index }}
- run: >-
- mv rspec.xml rspec-${CI_TEST_APP}-${CI_NODE_INDEX}.xml
- - name: Archive spec reports
- uses: actions/upload-artifact@v4
- if: always()
- with:
- name: spec-reports-${{ matrix.ci_test_app }}-${{ matrix.ci_node_index }}
- path: '**/rspec*.xml'
-
- report:
- needs: test
- runs-on: ubuntu-latest
- permissions:
- checks: write
- # only needed unless run with comment_mode: off
- pull-requests: write
- if: always()
- steps:
- - name: Download all workflow run artifacts
- uses: actions/download-artifact@v4
- with:
- path: artifacts
- pattern: "*report*"
- - name: Publish Test Report
- uses: EnricoMi/publish-unit-test-result-action@v2
- with:
- files: "artifacts/**/*.xml"
- action_fail_on_inconclusive: true
- fail_on: "test failures"
diff --git a/.github/workflows/lint-build-test.yml b/.github/workflows/lint-build-test.yml
index dbfa23462e..04be1da356 100644
--- a/.github/workflows/lint-build-test.yml
+++ b/.github/workflows/lint-build-test.yml
@@ -31,7 +31,7 @@ jobs:
bundler-cache: true
cache-version: 1
- name: Rubocop
- run: echo "" >> rubocop.xml
+ run: bundle install && bundle exec rubocop --parallel --format progress --format junit --out rubocop.xml --display-only-failed
- name: Archive rubocop reports
uses: actions/upload-artifact@v4
if: always()
@@ -49,6 +49,24 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: Build and export
+ uses: docker/build-push-action@v5
+ with:
+ build-args: |
+ APP_PATH=.${{ matrix.ci_test_app }}
+ cache-from: type=gha
+ cache-to: type=gha, mode=max
+ context: .
+ target: hyrax-engine-dev
+ tags: samvera/${{ matrix.ci_test_app }}:latest,samvera/${{ matrix.ci_test_app }}:${{ github.sha }}
+ outputs: type=docker,dest=/tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
+ - name: Upload built image artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ matrix.ci_test_app }}-image
+ path: /tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
test:
needs: build
@@ -62,8 +80,34 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- - name: Fake Run
- run: echo "" >> rspec.xml
+ - name: Setup tmate debug session
+ uses: mxschmitt/action-tmate@v3
+ if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled }}
+ with:
+ limit-access-to-actor: true
+ detached: true
+ - name: Download built image artifact
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ matrix.ci_test_app }}-image
+ path: /tmp
+ - name: Start containers
+ run: |
+ docker load --input /tmp/${{ matrix.ci_test_app }}-${{ github.sha }}.tar
+ docker image ls -a
+ docker compose -f docker-compose-${{ matrix.ci_test_app }}.yml up -d --quiet-pull --pull missing --no-build
+ - name: RSpec
+ env:
+ CI_NODE_TOTAL: ${{ matrix.ci_node_total }}
+ CI_NODE_INDEX: ${{ matrix.ci_node_index }}
+ run: >-
+ docker compose -f docker-compose-${{ matrix.ci_test_app }}.yml exec -T -w /app/samvera/hyrax-engine web sh -c
+ "bundle install && yarn install && rspec_booster --job ${{ matrix.ci_node_index }}/${{ matrix.ci_node_total }}"
+ - name: Capture Container Logs
+ if: always()
+ uses: jwalton/gh-docker-logs@v2
+ with:
+ images: 'seleniarm/standalone-chromium'
- name: Move Test Files
if: always()
env:
@@ -72,7 +116,7 @@ jobs:
CI_NODE_INDEX: ${{ matrix.ci_node_index }}
run: >-
mv rspec.xml rspec-${CI_TEST_APP}-${CI_NODE_INDEX}.xml
- - name: Archive spec reports (${{ matrix.ci_node_index}})
+ - name: Archive spec reports
uses: actions/upload-artifact@v4
if: always()
with: