Merge pull request #63 from icatproject/dependabot/github_actions/act… #94
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: CI Build | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
build_and_tests: | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
java_version: [11, 17] | |
steps: | |
# Setup Java & Python | |
- name: Setup Java | |
uses: actions/setup-java@b36c23c0d998641eff861008f374ee103c25ac73 # v4.4.0 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ matrix.java_version }} | |
- name: Cache local Maven repository | |
uses: actions/cache@2cdf405574d6ef1f33a1d12acccd3ae82f47b3f2 # v4.1.0 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Run apt-get update | |
run: sudo apt-get update | |
# ICAT Ansible clone and install dependencies | |
- name: Checkout icat-ansible | |
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
with: | |
repository: icatproject-contrib/icat-ansible | |
path: icat-ansible | |
ref: master | |
- name: Install Ansible | |
run: pip install -r icat-ansible/requirements.txt | |
# Prep for running the playbook | |
- name: Create Hosts File | |
run: echo -e "[icatdb_minimal_hosts]\nlocalhost ansible_connection=local" > icat-ansible/hosts | |
- name: Prepare vault pass | |
run: echo -e "icattravispw" > icat-ansible/vault_pass.txt | |
- name: Move vault to directory it'll get detected by Ansible | |
run: mv icat-ansible/vault.yml icat-ansible/group_vars/all | |
- name: Replace default payara user with Actions user | |
run: | | |
sed -i -e "s/^payara_user: \"glassfish\"/payara_user: \"runner\"/" icat-ansible/group_vars/all/vars.yml | |
- name: Add Ansible Role | |
run: | | |
sed -i "/- role: authn_anon$/a\ | |
\ - role: authn_db" icat-ansible/icatdb_minimal_hosts.yml | |
sed -i "/- role: icat_server$/a\ | |
\ - role: dev_common" icat-ansible/icatdb_minimal_hosts.yml | |
# Force hostname to localhost - bug fix for previous ICAT Ansible issues on Actions | |
- name: Change hostname to localhost | |
run: sudo hostname -b localhost | |
# Remove existing MySQL installation so it doesn't interfere with GitHub Actions | |
- name: Remove existing mysql | |
run: | | |
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld | |
sudo apt-get remove --purge "mysql*" | |
sudo rm -rf /var/lib/mysql* /etc/mysql | |
# Create local instance of ICAT | |
- name: Run ICAT Ansible Playbook | |
run: | | |
ansible-playbook icat-ansible/icatdb_minimal_hosts.yml -i icat-ansible/hosts --vault-password-file icat-ansible/vault_pass.txt -vv | |
- name: Checkout icat-oaipmh | |
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 | |
# Payara must be sourced otherwise the Maven build command fails | |
- name: Run Build | |
run: | | |
grep payara ~/.bash_profile > payara_path_command | |
source payara_path_command | |
mvn install -DskipTests | |
- name: Run Integration Tests | |
run: mvn failsafe:integration-test failsafe:verify -B | |
- name: After Failure | |
if: ${{ failure() }} | |
run: | | |
cat /home/runner/logs/icat_oaipmh.log | |
cat /home/runner/logs/icat.log | |
cat /home/runner/payara*/glassfish/domains/domain1/logs/server.log |