test: add test script #1200
Workflow file for this run
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 (c) 2022 ZettaScale Technology | |
# | |
# This program and the accompanying materials are made available under the | |
# terms of the Eclipse Public License 2.0 which is available at | |
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0 | |
# which is available at https://www.apache.org/licenses/LICENSE-2.0. | |
# | |
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 | |
# | |
# Contributors: | |
# ZettaScale Zenoh Team, <zenoh@zettascale.tech> | |
# | |
name: CI | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["**"] | |
pull_request: | |
branches: ["**"] | |
schedule: | |
- cron: "0 0 * * 1-5" | |
jobs: | |
checks: | |
name: Run checks on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
components: rustfmt, clippy | |
- name: Code format check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: -- --check | |
- name: Clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all-targets -- -D warnings | |
- name: Clippy unstable | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --all-targets -- -D warnings | |
tests: | |
name: Run tests on ${{ matrix.os }} | |
needs: [checks] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: dump | |
run: | | |
echo 'github.workspace === ${{ github.workspace }}' | |
echo "GITHUB_WORKSPACE === $GITHUB_WORKSPACE" | |
echo 'runner.workspace === ${{ runner.workspace }}' | |
echo "RUNNER_WORKSPACE === $RUNNER_WORKSPACE" | |
- name: Install latest Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
# with: | |
# toolchain: 1.70.0 | |
- name: Build | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release --verbose --all-targets | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --release --verbose | |
env: | |
ASYNC_STD_THREAD_COUNT: 4 | |
- name: Run doctests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --doc | |
env: | |
ASYNC_STD_THREAD_COUNT: 4 | |
# - name: Check out my other private repo | |
# uses: actions/checkout@master | |
# with: | |
# repository: eclipse-zenoh/zenoh | |
- name: Create TEMP_DIR | |
run: | | |
echo "TEMP_DIR=$(mktemp -d)" >> $GITHUB_ENV | |
echo "${{ env.TEMP_DIR}} >> ${{ env.TEMP_DIR}}" | |
#./../../zenoh | |
- name: Clone Repository | |
run: git clone -b '0.7.2-rc' https://github.com/eclipse-zenoh/zenoh.git ${{ env.TEMP_DIR}}/zenoh | |
- name: Rust Version | |
run: rustc --version | |
- name: Rust toolchain | |
run: | | |
rustup toolchain install 1.7.0 | |
rustc --version | |
- name: Build Zenoh | |
run: | | |
cd ${{ env.TEMP_DIR}}/zenoh | |
cargo build --all-targets | |
# - if: matrix.os == 'macOS-latest' | |
# name: Free Disk Space (macOS) | |
# run: | | |
# top -l 1 -s 0 | grep PhysMem | |
# sysctl -a | awk '/hw./' && '/mem/' | |
# top -l 1 -s 0 | grep PhysMem | |
- if: matrix.os == 'ubuntu-latest' | |
name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: true | |
- name: Print current working dir | |
run: | | |
cd target | |
ls -la $PWD | |
ls -la $GITHUB_WORKSPACE | |
- name: Print into Zenoh | |
run: | | |
cd ${{ env.TEMP_DIR}}/zenoh | |
ls -la $PWD | |
# - name: Free Disk Space (Ubuntu) | |
# uses: jlumbroso/free-disk-space@main | |
# with: | |
# # this might remove tools that are actually needed, | |
# # if set to "true" but frees about 6 GB | |
# tool-cache: true | |
# - name: Change directory --> from Zenoh-Flow to Home directory | |
# shell: bash | |
# run: | | |
# cd .. | |
# pwd | |
- name: Print current working dir | |
run: | | |
ls -la $PWD | |
ls -la $GITHUB_WORKSPACE | |
- name: Set path | |
run: | | |
echo '{{ runner.workspace }}/zenoh/target/debug/zenohd === ${{ runner.workspace }}/zenoh/target/debug/zenohd' | |
echo '{{ runner.workspace }}/release/debug/zfctl === ${{ runner.workspace }}/release/zfctl' | |
echo "ZENOHD_PATH=${{ env.TEMP_DIR}}/zenoh/target/debug/zenohd" >> $GITHUB_ENV | |
echo "ZFCTL_PATH= ${{ github.workspace }}/target/release/zfctl" >> $GITHUB_ENV | |
echo "ZF_PLUGIN_PATH= ${{ github.workspace }}/zenoh-flow-plugin/etc/zenoh-zf-plugin.json" >> $GITHUB_ENV | |
echo ${{env.ZENOHD_PATH}} | |
echo ${{env.ZFCTL_PATH}} | |
echo ${{env.ZF_PLUGIN_PATH}} | |
- name: Install Python package | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.x" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r manual-tests/requirements.txt | |
- name: Run Python automated-test.py script | |
run: | | |
output=$(python3 manual-tests/automated-test.py --build release --zenohd ${{env.ZENOHD_PATH}} --zfctl ${{env.ZFCTL_PATH}} --plugin ${{env.ZF_PLUGIN_PATH}} ) |