Skip to content

Functional Tests

Functional Tests #21

name: Functional Tests
on:
workflow_dispatch:
inputs:
runNumber: # Accessible through ${{ inputs.runNumber }}
description: 'Required "Build and release"" workflow run number from which to get artifacts to be tested'
required: true
type: number
workflow_run:
workflows: [Build and release]
types: [completed]
jobs:
functional-test:
if: github.event.workflow_run.conclusion == 'success' || github.event_name == 'workflow_dispatch'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
type: [java, jar, native]
runs-on: ${{ matrix.os }}
steps:
# Java is required for running the functional tests
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Get artifacts from triggering workflow
if: github.event_name == 'workflow_run'
uses: dawidd6/action-download-artifact@v2
with:
run_id: ${{ github.event.workflow_run.id }}
- name: Get artifacts from specified workflow
if: github.event_name == 'workflow_dispatch'
uses: dawidd6/action-download-artifact@v2
with:
run_number: ${{ inputs.runNumber }}
workflow: ci.yml
- name: List artifact contents
shell: bash
run: ls -lR
- name: Run Tests
shell: bash
run: |
mv artifact/release-assets/* .
mv artifact/fcli-ftest.jar .
case "${{ matrix.type }}" in
"java" )
java -jar -Dft.fcli=build fcli-ftest.jar ;;
"jar" )
java -jar -Dft.fcli=fcli.jar fcli-ftest.jar ;;
"native" )
case "${{ matrix.os }}" in
"ubuntu-latest" )
tar -zxvf fcli-linux.tgz
java -jar -Dft.fcli=./fcli fcli-ftest.jar ;;
"windows-latest" )
7z e fcli-windows.zip
java -jar -Dft.fcli=fcli.exe fcli-ftest.jar ;;
"macos-latest" )
tar -zxvf fcli-mac.tgz
java -jar -Dft.fcli=./fcli fcli-ftest.jar ;;
esac ;;
esac
mv test.log "test-${{ matrix.os }}-${{ matrix.type }}.log"
- name: Publish test logs
if: always()
uses: actions/upload-artifact@v3
with:
name: test-log
path: test-*.log