diff --git a/.github/workflows/schedule_tests.yml b/.github/workflows/schedule_tests.yml new file mode 100644 index 00000000000..2b43a53e5ca --- /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 00000000000..d58af423ffa --- /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 }}`) + }