--- name: Auto Start CI on: schedule: # Runs every five minutes (fastest the scheduler can run). Five minutes is # optimistic, it can take longer to run. # To understand why `schedule` is used instead of other events, refer to # ./doc/guides/commit-queue.md - cron: "*/5 * * * *" env: NODE_VERSION: 14.x jobs: startCI: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 # Install dependencies - name: Install Node.js uses: actions/setup-node@v2-beta with: node-version: ${{ env.NODE_VERSION }} - name: Install node-core-utils run: npm install -g node-core-utils - name: Set variables run: | echo "REPOSITORY=$(echo ${{ github.repository }} | cut -d/ -f2)" >> $GITHUB_ENV echo "OWNER=${{ github.repository_owner }}" >> $GITHUB_ENV # Get Pull Requests - name: Get Pull Requests uses: octokit/graphql-action@v2.x id: get_prs_for_ci with: query: | query prs($owner:String!, $repo:String!) { repository(owner:$owner, name:$repo) { pullRequests(labels: ["request-ci"], states: OPEN, last: 100) { nodes { number } } } } owner: ${{ env.OWNER }} repo: ${{ env.REPOSITORY }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Setup node-core-utils run: | ncu-config set username ${{ secrets.JENKINS_USER }} ncu-config set token none ncu-config set jenkins_token ${{ secrets.JENKINS_TOKEN }} ncu-config set owner ${{ env.OWNER }} ncu-config set repo ${{ env.REPOSITORY }} - name: Start CI run: ./tools/actions/start-ci.sh ${{ secrets.GITHUB_TOKEN }} ${{ env.OWNER }} ${{ env.REPOSITORY }} $(echo '${{ steps.get_prs_for_ci.outputs.data }}' | jq '.repository.pullRequests.nodes | map(.number) | .[]')