Explorar o código

Added GitHub action with daily builds for Windows and JavaScript tests.

Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Florian Apolloner %!s(int64=3) %!d(string=hai) anos
pai
achega
839d403e50
Modificáronse 2 ficheiros con 90 adicións e 0 borrados
  1. 48 0
      .github/workflows/schedule_tests.yml
  2. 42 0
      .github/workflows/schedules.yml

+ 48 - 0
.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

+ 42 - 0
.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 }}`)
+            }