Kestrel End-to-End Testing #283
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: Kestrel End-to-End Testing | |
on: | |
workflow_dispatch: | |
inputs: | |
organization: | |
description: 'Kestrel repo organization' | |
required: true | |
default: 'opencybersecurityalliance' | |
repository: | |
description: 'Kestrel repo name' | |
required: true | |
default: 'kestrel-lang' | |
branch: | |
description: 'Kestrel repo branch' | |
required: true | |
default: 'develop' | |
# This allows a subsequently queued workflow run to interrupt previous runs | |
concurrency: | |
group: '${{ github.workflow }} @ ${{ github.head_ref || github.ref }}' | |
cancel-in-progress: true | |
jobs: | |
kestrel-end-to-end-testing: | |
runs-on: ubuntu-22.04 | |
env: | |
kestrel_analytics_branch: release | |
venv_activate: | |
steps: | |
- name: Worflow Information | |
run: | | |
echo "Triggered by ${{ github.actor }} through a ${{ github.event_name }} event." | |
echo "Running on a ${{ runner.os }} server hosted by GitHub" | |
echo "Running in ${{ github.repository }} repository, ${{ github.ref }} branch." | |
echo "HOME = ${HOME}" | |
mkdir -p ${HOME}/fedsearchtest | |
- name: Code Checkout | |
uses: actions/checkout@v3 | |
- name: Create Virtual Environment | |
run: | | |
./federated-search-core/setup/create-venv.sh | |
source "$HOME/fedsearchtest/fedsearchtest/bin/activate" | |
echo "venv_activate=$VIRTUAL_ENV/bin/activate" >> $GITHUB_ENV | |
- name: Setup latest pip environment | |
run: | | |
source ${{ env.venv_activate }} | |
python -m pip install --upgrade pip setuptools wheel | |
- name: Kestrel Code Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.organization }}/${{ github.event.inputs.repository }} | |
ref: ${{ github.event.inputs.branch }} | |
path: './kestrel-lang' | |
- name: Kestrel Analytics Code Checkout | |
uses: actions/checkout@v3 | |
with: | |
repository: opencybersecurityalliance/kestrel-analytics | |
ref: ${{ env.kestrel_analytics_branch }} | |
path: './kestrel-analytics' | |
- name: Install kestrel from Source Code | |
run: | | |
source ${{ env.venv_activate }} | |
./application-test/kestrel/setup/install-kestrel.sh | |
- name: Elasticsearch instance setup | |
run: | | |
source ${{ env.venv_activate }} | |
./federated-search-core/setup/elastic-ecs/install-elastic.sh | |
- name: Import test data in elastic instance | |
run: ./federated-search-core/setup/elastic-ecs/import-data.sh | |
- name: Finalize and check Kestrel and Elasticsearch deployment in the test environment | |
run: | | |
source ${{ env.venv_activate }} | |
export KESTREL_STIXSHIFTER_CONFIG=${HOME}/fedsearchtest/kestrel-stixshifter-config.yaml | |
./application-test/kestrel/setup/deploy-kestrel.sh | |
- name: Install Kestrel Analytics | |
run: ./application-test/kestrel-analytics/setup/install-kestrel-analytics.sh | |
- name: Run End-to-End Tests | |
run: | | |
source ${{ env.venv_activate }} | |
./application-test/kestrel/test/run-tests.sh | |
- name: Cleanup | |
run: | | |
./federated-search-core/setup/elastic-ecs/clean-elastic.sh | |
docker network rm elastic | |
rm -rf data | |
- name: Job Status | |
run: echo "Job status is ${{ job.status }}." |