diff --git a/.github/config/.files.yaml b/.github/config/.files.yaml index 2f4f242cb..0d9d23c84 100644 --- a/.github/config/.files.yaml +++ b/.github/config/.files.yaml @@ -26,4 +26,9 @@ project: &project - gradlew - gradlew.bat - launch4jConfig.xml - - settings.gradle \ No newline at end of file + - settings.gradle + +frontend: &frontend + - frontend/** + - .github/workflows/testdriver.yml + - testing/** diff --git a/.github/workflows/testdriver.yml b/.github/workflows/testdriver.yml index cdb8b345d..c91ae4d8f 100644 --- a/.github/workflows/testdriver.yml +++ b/.github/workflows/testdriver.yml @@ -116,8 +116,25 @@ jobs: docker-compose up -d EOF + files-changed: + if: always() + name: detect what files changed + runs-on: ubuntu-latest + timeout-minutes: 3 + outputs: + frontend: ${{ steps.changes.outputs.frontend }} + steps: + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + + - name: Check for file changes + uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 + id: changes + with: + filters: ".github/config/.files.yaml" + test: - needs: deploy + if: needs.files-changed.outputs.frontend == 'true' + needs: [deploy, files-changed] runs-on: ubuntu-latest steps: @@ -132,12 +149,14 @@ jobs: uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: cache: 'npm' + cache-dependency-path: frontend/package-lock.json - name: Run TestDriver.ai uses: testdriverai/action@f0d0f45fdd684db628baa843fe9313f3ca3a8aa8 #1.1.3 with: key: ${{secrets.TESTDRIVER_API_KEY}} prerun: | + cd frontend npm install npm run build npm install dashcam-chrome --save @@ -167,6 +186,7 @@ jobs: sudo chmod 600 ../private.key - name: Cleanup deployment + if: always() run: | ssh -i ../private.key -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${{ secrets.VPS_USERNAME }}@${{ secrets.VPS_HOST }} << EOF cd /stirling/test-${{ github.sha }} @@ -174,3 +194,4 @@ jobs: cd /stirling rm -rf test-${{ github.sha }} EOF + continue-on-error: true # Ensure cleanup runs even if previous steps fail