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