glass the repo #514
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
# 🏃♀️ Continuous Integration and Delivery: Branch Testing | |
# ====================================================== | |
--- | |
name: 🔁 Branch integration testing | |
# Driving Event | |
# ------------- | |
# | |
# What event starts this workflow: a push to any branch other than main | |
on: | |
push: | |
branches: | |
- '**' | |
- '!main' | |
- '!develop' | |
workflow_dispatch: | |
# What to Do | |
# ---------- | |
# | |
# Test the software with mvn test | |
jobs: | |
branch-testing: | |
name: 🪵 Branch Testing | |
runs-on: ubuntu-latest | |
if: github.actor != 'pdsen-ci' | |
strategy: | |
matrix: | |
java-version: [17] | |
steps: | |
- | |
name: 💳 Checkout | |
uses: actions/checkout@v3 | |
with: | |
lfs: true | |
fetch-depth: 0 | |
token: ${{secrets.ADMIN_GITHUB_TOKEN || github.token}} | |
- | |
name: 💵 Maven Cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
# The "key" used to indicate a set of cached files is the operating system runner | |
# plus "mvn" for Maven-specific builds, plus a hash of the `pom.xml` files, which | |
# should uniquely identify the dependent jars; plus "pds" because we pds-prefix | |
# everything with "pds" in PDS—even when the context is obvious! 😅 | |
key: pds-${{runner.os}}-mvn-${{hashFiles('**/pom.xml')}} | |
# To restore a set of files, we only need to match a prefix of the saved key. | |
restore-keys: pds-${{runner.os}}-mvn- | |
- | |
name: ☕️ Set up OpenJDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'adopt' | |
java-version: ${{matrix.java-version}} | |
- | |
name: 🩺 Unit tests | |
run: mvn --quiet test | |
- | |
name: 📦 Package construction | |
run: mvn --quiet package | |
- | |
name: 🫙 Jar File Determination | |
id: jarrer | |
run: echo "jar_file=$(find ./service/target/ -maxdepth 1 -regextype posix-extended -regex '.*/registry-api-service-[0-9]+\.[0-9]+\.[0-9]+(-SNAPSHOT)?\.jar')" >> $GITHUB_OUTPUT | |
- | |
name: 🎰 QEMU Multiple Machine Emulation | |
uses: docker/setup-qemu-action@v2 | |
- | |
name: 🚢 Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- | |
name: 🧱 Image Construction and Publication | |
uses: docker/build-push-action@v3 | |
with: | |
context: ./ | |
file: ./docker/Dockerfile | |
build-args: api_jar=${{steps.jarrer.outputs.jar_file}} | |
push: false | |
load: true | |
tags: nasapds/registry-api-service:latest | |
- | |
name: ∫ Integration tests … hold onto your hats, pardners | |
run: | | |
git clone --quiet https://github.com/NASA-PDS/registry.git | |
cd registry/docker/certs | |
./generate-certs.sh | |
cd .. | |
docker image inspect nasapds/registry-api-service:latest >/dev/null | |
docker compose \ | |
--ansi never --profile int-registry-batch-loader --project-name registry \ | |
up --detach --quiet-pull | |
docker compose \ | |
--ansi never --profile int-registry-batch-loader --project-name registry \ | |
run --rm --no-TTY reg-api-integration-test-with-wait | |
- | |
name: Set up Python 3 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.9' | |
- | |
name: ∫ Test PDS Deep Archive compatibility | |
run: | | |
git clone --quiet https://github.com/NASA-PDS/deep-archive.git | |
cd deep-archive | |
pip install . | |
pds-deep-registry-archive -u http://localhost:8080 -s PDS_ENG urn:nasa:pds:insight_rad::2.1 --debug | |
... | |
# -*- mode: yaml; indent: 4; fill-column: 120; coding: utf-8 -*- |