forked from DSpace/DSpace
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'dspace/main' into w2p-106798_enforce-un…
…ique-item-id-in-workspace-table
- Loading branch information
Showing
1,572 changed files
with
45,379 additions
and
11,234 deletions.
There are no files selected for viewing
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
#------------------- | ||
# DSpace's dependabot rules. Enables maven updates for all dependencies on a weekly basis | ||
# for main and any maintenance branches. Security updates only apply to main. | ||
#------------------- | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "maven" | ||
directory: "/" | ||
schedule: | ||
interval: "weekly" | ||
# Allow up to 10 open PRs for dependencies | ||
open-pull-requests-limit: 10 | ||
# Group together some upgrades in a single PR | ||
groups: | ||
# Group together all Build Tools in a single PR | ||
build-tools: | ||
applies-to: version-updates | ||
patterns: | ||
- "org.apache.maven.plugins:*" | ||
- "*:*-maven-plugin" | ||
- "*:maven-*-plugin" | ||
- "com.github.spotbugs:spotbugs" | ||
- "com.google.code.findbugs:*" | ||
- "com.google.errorprone:*" | ||
- "com.puppycrawl.tools:checkstyle" | ||
- "org.sonatype.plugins:*" | ||
exclude-patterns: | ||
# Exclude anything from Spring, as that is in a separate group | ||
- "org.springframework.*:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
test-tools: | ||
applies-to: version-updates | ||
patterns: | ||
- "junit:*" | ||
- "com.github.stefanbirker:system-rules" | ||
- "com.h2database:*" | ||
- "io.findify:s3mock*" | ||
- "io.netty:*" | ||
- "org.hamcrest:*" | ||
- "org.mock-server:*" | ||
- "org.mockito:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all Apache Commons deps in a single PR | ||
apache-commons: | ||
applies-to: version-updates | ||
patterns: | ||
- "org.apache.commons:*" | ||
- "commons-*:commons-*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all fasterxml deps in a single PR | ||
fasterxml: | ||
applies-to: version-updates | ||
patterns: | ||
- "com.fasterxml:*" | ||
- "com.fasterxml.*:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all Hibernate deps in a single PR | ||
hibernate: | ||
applies-to: version-updates | ||
patterns: | ||
- "org.hibernate.*:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all Jakarta deps in a single PR | ||
jakarta: | ||
applies-to: version-updates | ||
patterns: | ||
- "jakarta.*:*" | ||
- "org.eclipse.angus:jakarta.mail" | ||
- "org.glassfish.jaxb:jaxb-runtime" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all Google deps in a single PR | ||
google-apis: | ||
applies-to: version-updates | ||
patterns: | ||
- "com.google.apis:*" | ||
- "com.google.api-client:*" | ||
- "com.google.http-client:*" | ||
- "com.google.oauth-client:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all Spring deps in a single PR | ||
spring: | ||
applies-to: version-updates | ||
patterns: | ||
- "org.springframework:*" | ||
- "org.springframework.*:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
# Group together all WebJARs deps in a single PR | ||
webjars: | ||
applies-to: version-updates | ||
patterns: | ||
- "org.webjars:*" | ||
- "org.webjars.*:*" | ||
update-types: | ||
- "minor" | ||
- "patch" | ||
ignore: | ||
# Don't try to auto-update any DSpace dependencies | ||
- dependency-name: "org.dspace:*" | ||
- dependency-name: "org.dspace.*:*" | ||
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates. | ||
- dependency-name: "*" | ||
update-types: ["version-update:semver-major"] |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,7 +24,7 @@ jobs: | |
# NOTE: Unit Tests include a retry for occasionally failing tests | ||
# - surefire.rerunFailingTestsCount => try again for flakey tests, and keep track of/report on number of retries | ||
- type: "Unit Tests" | ||
java: 11 | ||
java: 17 | ||
mvnflags: "-DskipUnitTests=false -Dsurefire.rerunFailingTestsCount=2" | ||
resultsdir: "**/target/surefire-reports/**" | ||
# NOTE: ITs skip all code validation checks, as they are already done by Unit Test job. | ||
|
@@ -34,7 +34,7 @@ jobs: | |
# - xml.skip => Skip all XML/XSLT validation by xml-maven-plugin | ||
# - failsafe.rerunFailingTestsCount => try again for flakey tests, and keep track of/report on number of retries | ||
- type: "Integration Tests" | ||
java: 11 | ||
java: 17 | ||
mvnflags: "-DskipIntegrationTests=false -Denforcer.skip=true -Dcheckstyle.skip=true -Dlicense.skip=true -Dxml.skip=true -Dfailsafe.rerunFailingTestsCount=2" | ||
resultsdir: "**/target/failsafe-reports/**" | ||
# Do NOT exit immediately if one matrix job fails | ||
|
@@ -49,7 +49,7 @@ jobs: | |
|
||
# https://github.com/actions/setup-java | ||
- name: Install JDK ${{ matrix.java }} | ||
uses: actions/setup-java@v3 | ||
uses: actions/setup-java@v4 | ||
with: | ||
java-version: ${{ matrix.java }} | ||
distribution: 'temurin' | ||
|
@@ -65,14 +65,14 @@ jobs: | |
# (This artifact is downloadable at the bottom of any job's summary page) | ||
- name: Upload Results of ${{ matrix.type }} to Artifact | ||
if: ${{ failure() }} | ||
uses: actions/upload-artifact@v3 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.type }} results | ||
path: ${{ matrix.resultsdir }} | ||
|
||
# Upload code coverage report to artifact, so that it can be shared with the 'codecov' job (see below) | ||
- name: Upload code coverage report to Artifact | ||
uses: actions/upload-artifact@v3 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ matrix.type }} coverage report | ||
path: 'dspace/target/site/jacoco-aggregate/jacoco.xml' | ||
|
@@ -91,7 +91,7 @@ jobs: | |
|
||
# Download artifacts from previous 'tests' job | ||
- name: Download coverage artifacts | ||
uses: actions/download-artifact@v3 | ||
uses: actions/download-artifact@v4 | ||
|
||
# Now attempt upload to Codecov using its action. | ||
# NOTE: We use a retry action to retry the Codecov upload if it fails the first time. | ||
|
@@ -101,10 +101,11 @@ jobs: | |
- name: Upload coverage to Codecov.io | ||
uses: Wandalen/[email protected] | ||
with: | ||
action: codecov/codecov-action@v3 | ||
action: codecov/codecov-action@v4 | ||
# Ensure codecov-action throws an error when it fails to upload | ||
with: | | ||
fail_ci_if_error: true | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
# Try re-running action 5 times max | ||
attempt_limit: 5 | ||
# Run again in 30 seconds | ||
|
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -43,7 +43,7 @@ jobs: | |
needs: dspace-dependencies | ||
uses: ./.github/workflows/reusable-docker-build.yml | ||
with: | ||
build_id: dspace | ||
build_id: dspace-prod | ||
image_name: dspace/dspace | ||
dockerfile_path: ./Dockerfile | ||
secrets: | ||
|
@@ -120,7 +120,7 @@ jobs: | |
if: github.repository == 'dspace/dspace' | ||
uses: ./.github/workflows/reusable-docker-build.yml | ||
with: | ||
build_id: dspace-postgres-pgcrypto | ||
build_id: dspace-postgres-pgcrypto-prod | ||
image_name: dspace/dspace-postgres-pgcrypto | ||
# Must build out of subdirectory to have access to install script for pgcrypto. | ||
# NOTE: this context will build the image based on the Dockerfile in the specified directory | ||
|
@@ -147,4 +147,97 @@ jobs: | |
tags_flavor: suffix=-loadsql | ||
secrets: | ||
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | ||
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} | ||
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }} | ||
|
||
################################################################################# | ||
# Test Deployment via Docker to ensure newly built images are working properly | ||
################################################################################# | ||
docker-deploy: | ||
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace' | ||
if: github.repository == 'dspace/dspace' | ||
runs-on: ubuntu-latest | ||
# Must run after all major images are built | ||
needs: [dspace, dspace-test, dspace-cli, dspace-postgres-pgcrypto, dspace-solr] | ||
env: | ||
# Override defaults dspace.server.url because backend starts at http://127.0.0.1:8080 | ||
dspace__P__server__P__url: http://127.0.0.1:8080/server | ||
# Enable all optional modules / controllers for this test deployment. | ||
# This helps check for errors in deploying these modules via Spring Boot | ||
iiif__P__enabled: true | ||
ldn__P__enabled: true | ||
oai__P__enabled: true | ||
rdf__P__enabled: true | ||
signposting__P__enabled: true | ||
sword__D__server__P__enabled: true | ||
swordv2__D__server__P__enabled: true | ||
# If this is a PR, force using "pr-testing" version of all Docker images. Otherwise, if on main branch, use the | ||
# "latest" tag. Otherwise, use the branch name. NOTE: the "pr-testing" tag is a temporary tag that we assign to | ||
# all PR-built docker images in reusable-docker-build.yml | ||
DSPACE_VER: ${{ (github.event_name == 'pull_request' && 'pr-testing') || (github.ref_name == github.event.repository.default_branch && 'latest') || github.ref_name }} | ||
steps: | ||
# Checkout our codebase (to get access to Docker Compose scripts) | ||
- name: Checkout codebase | ||
uses: actions/checkout@v4 | ||
# Download Docker image artifacts (which were just built by reusable-docker-build.yml) | ||
- name: Download Docker image artifacts | ||
uses: actions/download-artifact@v4 | ||
with: | ||
# Download all amd64 Docker images (TAR files) into the /tmp/docker directory | ||
pattern: docker-image-*-linux-amd64 | ||
path: /tmp/docker | ||
merge-multiple: true | ||
# Load each of the images into Docker by calling "docker image load" for each. | ||
# This ensures we are using the images just built & not any prior versions on DockerHub | ||
- name: Load all downloaded Docker images | ||
run: | | ||
find /tmp/docker -type f -name "*.tar" -exec docker image load --input "{}" \; | ||
docker image ls -a | ||
# Start backend using our compose script in the codebase. | ||
- name: Start backend in Docker | ||
run: | | ||
docker compose -f docker-compose.yml up -d | ||
sleep 10 | ||
docker container ls | ||
# Create a test admin account. Load test data from a simple set of AIPs as defined in cli.ingest.yml | ||
- name: Load test data into Backend | ||
run: | | ||
docker compose -f docker-compose-cli.yml run --rm dspace-cli create-administrator -e [email protected] -f admin -l user -p admin -c en | ||
docker compose -f docker-compose-cli.yml -f dspace/src/main/docker-compose/cli.ingest.yml run --rm dspace-cli | ||
# Verify backend started successfully. | ||
# 1. Make sure root endpoint is responding (check for dspace.name defined in docker-compose.yml) | ||
# 2. Also check /collections endpoint to ensure the test data loaded properly (check for a collection name in AIPs) | ||
- name: Verify backend is responding properly | ||
run: | | ||
result=$(wget -O- -q http://127.0.0.1:8080/server/api) | ||
echo "$result" | ||
echo "$result" | grep -oE "\"DSpace Started with Docker Compose\"," | ||
result=$(wget -O- -q http://127.0.0.1:8080/server/api/core/collections) | ||
echo "$result" | ||
echo "$result" | grep -oE "\"Dog in Yard\"," | ||
# Verify Handle Server can be stared and is working properly | ||
# 1. First generate the "[dspace]/handle-server" folder with the sitebndl.zip | ||
# 2. Start the Handle Server (and wait 20 seconds to let it start up) | ||
# 3. Verify logs do NOT include "Exception" in the text (as that means an error occurred) | ||
# 4. Check that Handle Proxy HTML page is responding on default port (8000) | ||
- name: Verify Handle Server is working properly | ||
run: | | ||
docker exec -i dspace /dspace/bin/make-handle-config | ||
echo "Starting Handle Server..." | ||
docker exec -i dspace /dspace/bin/start-handle-server | ||
sleep 20 | ||
echo "Checking for errors in error.log" | ||
result=$(docker exec -i dspace sh -c "cat /dspace/handle-server/logs/error.log* || echo ''") | ||
echo "$result" | ||
echo "$result" | grep -vqz "Exception" | ||
echo "Checking for errors in handle-server.log..." | ||
result=$(docker exec -i dspace cat /dspace/log/handle-server.log) | ||
echo "$result" | ||
echo "$result" | grep -vqz "Exception" | ||
echo "Checking to see if Handle Proxy webpage is available..." | ||
result=$(wget -O- -q http://127.0.0.1:8000/) | ||
echo "$result" | ||
echo "$result" | grep -oE "Handle Proxy" | ||
# Shutdown our containers | ||
- name: Shutdown Docker containers | ||
run: | | ||
docker compose -f docker-compose.yml down |
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
Oops, something went wrong.