Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Face detection template maintenance #2

Merged
merged 1 commit into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 0 additions & 52 deletions .github/workflows/run-ui-tests.yml

This file was deleted.

111 changes: 111 additions & 0 deletions .github/workflows/run-workflow-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: Run Xircuits Workflows Test

on:
push:
branches: [ main ]
pull_request:
branches: "*"
workflow_dispatch:

jobs:
build-and-run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11"]
env:
TEST_XIRCUITS: |
xircuits-workflows/Cam_Inference.xircuits
xircuits-workflows/Face_Detector.xircuits


steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Install xircuits
run: pip install xircuits

- name: Set Environment Variables
run: |
LIBRARY_NAME=$(echo "${GITHUB_REPOSITORY##*/}" | sed 's/-/_/g')
echo "LIBRARY_NAME=$LIBRARY_NAME" >> $GITHUB_ENV
COMPONENT_LIBRARY_PATH="xai_components/${LIBRARY_NAME}"
echo "COMPONENT_LIBRARY_PATH=$COMPONENT_LIBRARY_PATH" >> $GITHUB_ENV
if [ "${{ github.event_name }}" == "pull_request" ]; then
echo "BRANCH_NAME=${{ github.head_ref }}" >> $GITHUB_ENV
else
echo "BRANCH_NAME=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
fi

- name: List Xircuits
run: xircuits list

- name: Clone Repository
run: |
rm -rf ${{ env.COMPONENT_LIBRARY_PATH }}
if [ "${{ github.event_name }}" == "pull_request" ]; then
REPO_URL="${{ github.event.pull_request.head.repo.clone_url }}"
else
REPO_URL="https://github.com/${{ github.repository }}"
fi
git clone -b ${{ env.BRANCH_NAME }} $REPO_URL ${{ env.COMPONENT_LIBRARY_PATH }}

- name: Install Component Library
run: |
if [ -f "${{ env.COMPONENT_LIBRARY_PATH }}/requirements.txt" ]; then
echo "requirements.txt found, installing dependencies..."
pip install -r ${{ env.COMPONENT_LIBRARY_PATH }}/requirements.txt
else
echo "requirements.txt not found."
fi

- name: Test .xircuits Workflows
run: |
export PYTHONPATH="${GITHUB_WORKSPACE}:${PYTHONPATH}"
LOG_FILE="${GITHUB_WORKSPACE}/workflow_logs.txt"
TEST_FILES=$(echo "$TEST_XIRCUITS" | tr '\n' ' ')
echo "Repository: $LIBRARY_NAME" > $LOG_FILE
echo "Branch: $BRANCH_NAME" >> $LOG_FILE
echo -e "Testing Files:\n$TEST_FILES" >> $LOG_FILE
IFS=' ' read -r -a FILE_ARRAY <<< "$TEST_FILES"
FAIL=0
if [ ${#FILE_ARRAY[@]} -eq 0 ]; then
echo "No .xircuits files specified for testing." | tee -a $LOG_FILE
else
for file in "${FILE_ARRAY[@]}"; do
FULL_PATH="${COMPONENT_LIBRARY_PATH}/${file}"
if [ -f "$FULL_PATH" ]; then
WORKFLOW_LOG_FILE="${FULL_PATH%.*}_workflow_log.txt"
echo -e "\n\nProcessing $FULL_PATH..." | tee -a $LOG_FILE
xircuits compile $FULL_PATH "${FULL_PATH%.*}.py" 2>&1 | tee -a $LOG_FILE
python "${FULL_PATH%.*}.py" 2>&1 | tee -a $WORKFLOW_LOG_FILE
if grep -q "Finished Executing" "$WORKFLOW_LOG_FILE" || grep -q "Camera started!" "$WORKFLOW_LOG_FILE"; then
echo "$FULL_PATH processed successfully" | tee -a $LOG_FILE
else
echo "Error: Workflow $FULL_PATH did not finish as expected" | tee -a $LOG_FILE
FAIL=1
fi
cat "$WORKFLOW_LOG_FILE" | tee -a $LOG_FILE
else
echo "Specified file $FULL_PATH does not exist" | tee -a $LOG_FILE
FAIL=1
fi
done
fi
if [ $FAIL -ne 0 ]; then
echo "One or more workflows failed or did not finish as expected." | tee -a $LOG_FILE
exit 1
else
echo "Workflow processing completed" | tee -a $LOG_FILE
fi


- name: Upload log file
if: always()
uses: actions/upload-artifact@v4
with:
name: ${{ env.LIBRARY_NAME }}-validation-workflow-${{ matrix.python-version }}
path: ${{ github.workspace }}/workflow_logs.txt

9 changes: 5 additions & 4 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
deepface
matplotlib
mediapipe
xircuits
xircuits
deepface==0.0.73
matplotlib==3.9.3
mediapipe==0.10.18
tensorflow==2.15.0
Loading
Loading