upgraded spring boot #33
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: Client Libs Backward Compatibility | |
on: | |
push: | |
paths-ignore: | |
- 'README.md' | |
- .github/workflows/skills-service-backward-compat.yml | |
- .github/workflows/client-libs-backward-compat.yml | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- .github/workflows/skills-service-backward-compat.yml | |
- .github/workflows/client-libs-backward-compat.yml | |
workflow_dispatch: | |
jobs: | |
get_skills_service_versions: | |
runs-on: ubuntu-latest | |
outputs: | |
services: ${{ steps.generate-matrix.outputs.services }} | |
versions: ${{ steps.generate-matrix.outputs.versions }} | |
steps: | |
- name: Generate Matrix | |
id: generate-matrix | |
run: | | |
TO_EXCLUDE='["3.1.0","3.0.3","3.0.2","3.0.1","3.0.0"]' | |
RESPONSE=$(curl -s -X GET 'https://api.github.com/repos/NationalSecurityAgency/skills-service/releases') | |
ALL_TAG_NAMES=$(echo "$RESPONSE" | jq -c '[.[] | .tag_name]') | |
echo "ALL_TAG_NAMES=$ALL_TAG_NAMES" | |
FILTERED_TAG_NAMES=$(jq --argjson to_exclude "$TO_EXCLUDE" '. - $to_exclude' <<< "$ALL_TAG_NAMES") | |
echo "FILTERED_TAG_NAMES=$FILTERED_TAG_NAMES" | |
TOP_TAGS=$(jq -c '.[0:5]' <<< "$FILTERED_TAG_NAMES") | |
echo "TOP_TAGS=$TOP_TAGS" | |
echo ::set-output name=versions::${TOP_TAGS} | |
build_skills_client_int: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.11.0' | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '19' # The JDK version to make available on the path. | |
- name: Print Versions | |
run: | | |
mvn --version | |
java -version | |
npm -version | |
node --version | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Cache npm | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: setup npm links | |
run: ./.github/workflows/scripts/setupNpmLinks.sh | |
- name: build integration test apps | |
env: | |
MAVEN_OPTS: -Xmx2048m | |
run: | | |
cd ./skills-client-integration | |
mvn --batch-mode clean install | |
cd ../ | |
- name: upload service jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: service jar | |
path: ./skills-client-integration/skills-int-service/target/skills-int-service-*.jar | |
run_backward_compatibility_tests: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
# Docker Hub image | |
image: postgres | |
# Provide the password for postgres | |
env: | |
POSTGRES_PASSWORD: skillsPassword | |
POSTGRES_DB: skills | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
# Maps tcp port 5432 on service container to the host | |
- 5432:5432 | |
needs: | |
- get_skills_service_versions | |
- build_skills_client_int | |
strategy: | |
fail-fast: false | |
matrix: | |
version: ${{ fromJSON(needs.get_skills_service_versions.outputs.versions) }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.11.0' | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '19' # The JDK version to make available on the path. | |
- name: Print Versions | |
run: | | |
mvn --version | |
java -version | |
npm -version | |
node --version | |
- name: Cache local Maven repository | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Cache npm | |
uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: download skill-service:${{ matrix.version }} | |
run: | | |
mkdir skills-service | |
cd skills-service | |
wget https://github.com/NationalSecurityAgency/skills-service/releases/download/${{ matrix.version }}/skills-service-${{ matrix.version }}.jar | |
ls ./ | |
cd .. | |
- name: download integration test apps | |
uses: actions/download-artifact@v4 | |
with: | |
name: service jar | |
path: ./skills-client-integration/skills-int-service/target/ | |
- name: start services for cypress tests | |
run: | | |
cd skills-client-integration/skills-int-e2e-test | |
npm install | |
npm run cyServices:start:skills-service:ci | |
npm run cyServices:start:integration-apps | |
cd ../../ | |
- name: Run Cypress tests | |
run: | | |
cd skills-client-integration/skills-int-e2e-test | |
npx cypress run --env skills-service.minVersion=${{ matrix.version }} | |
cd ../../ | |
- name: upload result artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: result artifacts for ${{ matrix.version }} | |
path: | | |
./skills-service/*.jar | |
./skills-client-integration/skills-int-service/target/*.jar | |
./skills-client-integration/skills-int-e2e-test/target/logs/*.out | |
./skills-client-integration/skills-int-e2e-test/cypress/videos/*.mp4 | |
./skills-client-integration/skills-int-e2e-test/cypress/screenshots/**/*.png | |
./skills-client-integration/skills-int-e2e-test/logs | |
./skills-client-integration/skills-int-e2e-test/cypress/videos | |
./skills-client-integration/skills-int-e2e-test/cypress/screenshots | |
./skills-client-integration/skills-int-e2e-test/cypress/snapshots/**/**/__diff_output__/*.png | |
./skills-client-integration/skills-int-e2e-test/cypress/snapshots/**/__diff_output__/*.png |