diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 98f50e335..507bf3eb4 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,4 +7,12 @@ updates: commit-message: prefix: "[bot]" open-pull-requests-limit: 1 + target-branch: "development" + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'weekly' + commit-message: + prefix: "[workflow]" + open-pull-requests-limit: 1 target-branch: "development" \ No newline at end of file diff --git a/.github/scripts/build_test.sh b/.github/scripts/build_test.sh deleted file mode 100755 index 4e9287fb1..000000000 --- a/.github/scripts/build_test.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -python3 "${ROOT_DIRECTORY}"/bazarr.py & -PID=$! - -sleep 30 - -if kill -s 0 $PID -then - echo "Bazarr is still running. We'll kill it..." - kill $PID - exit 0 -else - exit 1 -fi \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3fd5bad54..962c10c89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,21 +5,27 @@ on: 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 - env: - ROOT_DIRECTORY: . - UI_DIRECTORY: ./frontend - steps: - name: Checkout repository uses: actions/checkout@v2 + with: + fetch-depth: 1 - name: Cache node_modules uses: actions/cache@v2 @@ -43,19 +49,44 @@ jobs: - uses: actions/upload-artifact@v2 with: - name: "ui" + 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: | - python -m pip install --upgrade pip - pip install -r '${{ env.ROOT_DIRECTORY }}/requirements.txt' + run: pip install -r requirements.txt - - name: Test Bazarr execution + - name: Unit Tests run: | - bash '.github/scripts/build_test.sh' + 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 diff --git a/.github/workflows/release_beta_to_dev.yaml b/.github/workflows/release_beta_to_dev.yaml index a24dbecef..d371d1f0f 100644 --- a/.github/workflows/release_beta_to_dev.yaml +++ b/.github/workflows/release_beta_to_dev.yaml @@ -6,6 +6,7 @@ jobs: runs-on: ubuntu-latest env: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + STATUS_WORKFLOW_NAME: "ci.yml" UI_DIRECTORY: ./frontend ASSET_DIRECTORY: ./__builds__ FETCH_DEPTH: 15 # Should be enough @@ -50,7 +51,27 @@ jobs: run: npm run build working-directory: ${{ env.UI_DIRECTORY }} + # TODO: Wrap this to a standalone plugin + - name: Check CI Status + id: check_ci + shell: bash + run: | + echo "**** Checking latest status from ${{ env.STATUS_WORKFLOW_NAME }} ****" + Raw_Result=$(curl -sSL "https://api.github.com/repos/${{ github.repository }}/actions/workflows/${{ env.STATUS_WORKFLOW_NAME }}/runs?per_page=1&event=push") + Result="failed" + if [[ $? -eq 0 ]]; then + echo $Raw_Result | grep conclusion | grep success > /dev/null 2>&1 + if [[ $? -eq 0 ]]; then + Result="success" + fi + else + echo "**** Error occurred ****" + fi + echo "**** Status: $Result ****" + echo "::set-output name=result::$Result" + - name: Create Release (Conditional) + if: ${{ steps.check_ci.outputs.result == 'success' }} run: | revision_count=$(git rev-list --invert-grep --regexp-ignore-case --extended-regexp --grep="^(Release|no log:).*" $(git describe --tags --abbrev=0)..HEAD --count) if [[ $revision_count != 0 ]]; then diff --git a/.github/workflows/test_bazarr_execution.yml b/.github/workflows/test_bazarr_execution.yml deleted file mode 100644 index fa0243520..000000000 --- a/.github/workflows/test_bazarr_execution.yml +++ /dev/null @@ -1,50 +0,0 @@ -name: test_bazarr_execution -on: workflow_dispatch - -jobs: - Test: - runs-on: ubuntu-latest - env: - ROOT_DIRECTORY: . - SCRIPTS_DIRECTORY: .github/scripts - UI_DIRECTORY: ./frontend - FETCH_DEPTH: 15 # Should be enough - steps: - - name: Validate branch - if: ${{ github.ref != 'refs/heads/development' }} - run: | - echo This action can only be run on development branch, not ${{ github.ref }} - exit 1 - - - name: Checkout - uses: actions/checkout@v2 - with: - fetch-depth: ${{ env.FETCH_DEPTH }} - ref: development - - - name: Setup NodeJS - uses: actions/setup-node@v2 - with: - node-version: "15.x" - - - name: Install UI Dependencies - run: npm install - working-directory: ${{ env.UI_DIRECTORY }} - - - name: Build UI - run: npm run build - working-directory: ${{ env.UI_DIRECTORY }} - - - name: Set up Python 3.8 - uses: actions/setup-python@v2 - with: - python-version: '3.8' - - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - pip install -r '${{ env.ROOT_DIRECTORY }}/requirements.txt' - - - name: Test Bazarr execution - run: | - bash '${{ env.SCRIPTS_DIRECTORY }}/build_test.sh'