name : CI
on :
push :
branches : [ development]
paths :
- frontend/**
- bazarr/**
- libs/**
- bazarr.py
- requirements.txt
- dev-requirements.txt
- .github/workflows/ci.yml
pull_request :
branches : [ development]
env :
UI_DIRECTORY : ./frontend
UI_ARTIFACT_NAME : ui
jobs :
Frontend :
runs-on : ubuntu-latest
steps :
- name : Checkout repository
uses : actions/checkout@v2
with :
fetch-depth : 1
- name : Cache node_modules
uses : actions/cache@v2
with :
path : '${{ env.UI_DIRECTORY }}/node_modules'
key : ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys : ${{ runner.os }}-modules-
- name : Setup NodeJS
uses : actions/setup-node@v2
with :
node-version : "15.x"
- name : Install dependencies
run : npm install
working-directory : ${{ env.UI_DIRECTORY }}
- name : Build
run : npm run build
working-directory : ${{ env.UI_DIRECTORY }}
- name : Unit Test
run : npm test
working-directory : ${{ env.UI_DIRECTORY }}
- uses : actions/upload-artifact@v2
with :
name : ${{ env.UI_ARTIFACT_NAME }}
path : "${{ env.UI_DIRECTORY }}/build"
Backend :
runs-on : ubuntu-latest
needs : Frontend
steps :
- name : Checkout repository
uses : actions/checkout@v2
with :
fetch-depth : 1
- name : Set up Python 3.8
uses : actions/setup-python@v2
with :
python-version : '3.8'
- name : Install UI
uses : actions/download-artifact@v2
with :
name : ${{ env.UI_ARTIFACT_NAME }}
path : "${{ env.UI_DIRECTORY }}/build"
- name : Install Python dependencies
run : pip install -r requirements.txt
- name : Unit Tests
run : |
python3 bazarr.py &
PID=$!
sleep 15
if kill -s 0 $PID
then
echo "**** Bazarr launch successful ****"
kill $PID
exit 0
else
echo "**** Bazarr launch failed ****"
exit 1
fi