From 839d403e50eafa49a7e4a5a13ad818844ff9305b Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Fri, 11 Mar 2022 08:36:36 +0100 Subject: [PATCH] Added GitHub action with daily builds for Windows and JavaScript tests. Co-Authored-By: Mariusz Felisiak --- .github/workflows/schedule_tests.yml | 48 ++++++++++++++++++++++++++++ .github/workflows/schedules.yml | 42 ++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 .github/workflows/schedule_tests.yml create mode 100644 .github/workflows/schedules.yml diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml new file mode 100644 index 0000000000..2b43a53e5c --- /dev/null +++ b/.github/workflows/schedule_tests.yml @@ -0,0 +1,48 @@ +name: Schedule tests + +on: + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + windows: + runs-on: windows-latest + strategy: + matrix: + python-version: + - '3.8' + - '3.9' + - '3.10' + - '3.11.0-alpha - 3.11.0' + name: Windows, SQLite, Python ${{ matrix.python-version }} + continue-on-error: true + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + cache-dependency-path: 'tests/requirements/py3.txt' + - run: pip install -r tests/requirements/py3.txt -e . + - name: Run tests + run: python tests/runtests.py -v2 + + javascript-tests: + runs-on: ubuntu-latest + name: JavaScript tests + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '12' + cache: 'npm' + cache-dependency-path: '**/package.json' + - run: npm install + - run: npm test diff --git a/.github/workflows/schedules.yml b/.github/workflows/schedules.yml new file mode 100644 index 0000000000..d58af423ff --- /dev/null +++ b/.github/workflows/schedules.yml @@ -0,0 +1,42 @@ +name: Schedule + +on: + schedule: + - cron: '42 2 * * *' + workflow_dispatch: + +jobs: + trigger-runs: + runs-on: ubuntu-latest + environment: schedules + name: Trigger Full Build + # Only trigger on the main Django repository + if: (github.event_name == 'schedule' && github.repository == 'django/django') || (github.event_name != 'schedule') + strategy: + matrix: + branch: + - main + steps: + - uses: actions/github-script@v6 + with: + github-token: ${{secrets.SCHEDULE_WORKFLOW_TOKEN}} + script: | + const yesterday = new Date(new Date() - (1000 * 3600 * 24)).toISOString(); + const { data: commits } = await github.rest.repos.listCommits({ + owner: context.repo.owner, + repo: context.repo.repo, + sha: '${{ matrix.branch }}', + since: yesterday, + per_page: 1 + }); + if (commits.length) { + console.log(`Found new commit with SHA ${commits[0].sha} on branch ${{ matrix.branch }}`) + await github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: '.github/workflows/schedule_tests.yml', + ref: '${{ matrix.branch }}', + }) + } else { + console.log(`No commits found since ${yesterday} on brach ${{ matrix.branch }}`) + }