Box-c requires Java 11 in order to build and test. On a Mac, this can be installed using brew as follows:
brew tap adoptopenjdk/openjdk brew install --cask adoptopenjdk11 Then set JAVA_HOME to the installed version. This can be done by editing your .bash_profile or .bashrc file to add the following line:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/ Maven 3.x is required in order to build the project, which can be installed with:
brew install maven # clone the project git clone https://github.com/UNC-Libraries/box-c # initialize submodules git submodule update --init --recursive # Install SASS parser to build CSS gem install sass # Install Homebrew, if not already installed See https://brew.sh/ for instructions. # Install Node.js to build JavaScript and run JavaScript tests brew install node # Build the project mvn clean install -DskipTests # Build development vue access app npm --prefix static/js/vue-cdr-access run build-dev # Build production vue access app npm --prefix static/js/vue-cdr-access run build # Build development vue permissions app npm --prefix static/js/admin/vue-permissions-editor run build-dev # Build production vue permissions app npm --prefix static/js/admin/vue-permissions-editor run build # Install new NPM package npm install <package-name> --save # Install a new NPM package used only in development, for example Jest, that's only used to run test npm install <package-name> --saveDev See the instructions here: Setup Readme
All tests run automatically in Github Actions. All Java tests run automatically when building the project, unless skipped. JavaScript test don't run on a maven build, but can be run manually using the NPM command below.
# Java Unit Tests (skipping tests from external modules) mvn -pl '!clamav-java' test To run the integration tests locally, you will first need to start external dependencies such as Fedora. Do to this, from the root directory of this project, run the following command:
docker-compose up And then wait for the start-up/installation process to complete, which may take a few minutes.
Note: After the first time, you can start and stop the docker containers directly in Docker Desktop instead of using the commandline. It would still be best to wait a minute or two for all the containers to finish starting.
Next, run the integration tests from within your IDE or via the following:
# Java unit and integration tests mvn -pl '!clamav-java' verify # JavaScript Tests npm --prefix static/js/admin/vue-cdr-admin run test npm --prefix static/js/vue-cdr-access run test run npm init vue@3 and follow the prompts if you need to scaffold a new Vue project. This will create a vite based application similar to our current Vue applications.