CI Build #972
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
# Copyright 2020, 2024, Oracle Corporation and/or its affiliates. All rights reserved. | |
# Licensed under the Universal Permissive License v 1.0 as shown at | |
# https://oss.oracle.com/licenses/upl. | |
# --------------------------------------------------------------------------- | |
# Coherence .NET Extend Client GitHub Actions CI build. | |
# --------------------------------------------------------------------------- | |
name: CI Build | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 2 * * *" | |
push: | |
branches: | |
- main | |
pull_request: | |
types: | |
- opened | |
- committed | |
branches: | |
- main | |
- '*' | |
jobs: | |
build: | |
name: Build on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, windows-latest, macOS-latest] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Clean | |
- name: Clean | |
run: dotnet nuget locals all --clear | |
# Build | |
- name: Build | |
run: | | |
dotnet restore | |
dotnet build --configuration Release --no-restore | |
test-linux: | |
name: Test on Linux against Coherence ${{ matrix.coherence_version }} | |
needs: build | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
coherence_version: [14.1.1-0-17, 22.06.8, 24.03] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# Set up Java 17 | |
- name: Set up Java 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '17' | |
# Install SSL certificates | |
- name: Install SSL certificates | |
run: | | |
sudo cp tests/Coherence.Tests/Config/testcert.pem /usr/local/share/ca-certificates/testcert.crt | |
sudo cp tests/Coherence.Tests/Net/Ssl/CA.cer /usr/local/share/ca-certificates/CA.crt | |
sudo cp tests/Coherence.Tests/Net/Ssl/Server.cer /usr/local/share/ca-certificates/Server.crt | |
sudo update-ca-certificates | |
# Build | |
- name: Build | |
run: | | |
dotnet restore | |
dotnet build --configuration Release --no-restore | |
# Build test server | |
- name: Build test server | |
run: | | |
pushd tests/test-server | |
mvn --batch-mode -e clean install -s .mvn/settings.xml -Drevision=${{ matrix.coherence_version }} | |
popd | |
# Start test server | |
- name: Start test server | |
run: | | |
pushd tests/test-server | |
mvn --batch-mode -e exec:exec -s .mvn/settings.xml -Drevision=${{ matrix.coherence_version }} & | |
sleep 30 | |
popd | |
# Run Tests | |
- name: Run Tests | |
run: dotnet test --configuration Release --no-restore | |
# Capture server log for diagnosing failures | |
- name: Capture test logs | |
uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: build-output | |
path: build\**\*.log |