name: Merge queue and try on: push: branches: ["auto", "try"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: decision: name: Decision job runs-on: ubuntu-20.04 steps: - name: Previous successful build check uses: actions/github-script@v6 with: script: | if ((await github.rest.actions.listWorkflowRuns({ owner: context.repo.owner, repo: context.repo.repo, workflow_id: "main.yml", head_sha: context.sha, status: "success", })).data.workflow_runs.length > 0) await github.rest.actions.cancelWorkflowRun({ owner: context.repo.owner, repo: context.repo.repo, run_id: context.runId, }); build-win: name: Windows needs: ["decision"] uses: ./.github/workflows/windows.yml with: layout: '2013' unit-tests: true build-mac: name: Mac needs: ["decision"] uses: ./.github/workflows/mac.yml with: layout: '2013' unit-tests: true build-linux: name: Linux needs: ["decision"] uses: ./.github/workflows/linux.yml with: layout: '2013' wpt: 'test' unit-tests: true build-linux-layout-2020: name: Linux (layout-2020) needs: ["decision"] uses: ./.github/workflows/linux.yml with: layout: '2020' wpt: 'test' unit-tests: true build_result: name: homu build finished runs-on: ubuntu-latest if: always() # needs all build to detect cancellation needs: - "decision" - "build-win" - "build-mac" - "build-linux" - "build-linux-layout-2020" steps: - name: Mark the job as successful run: exit 0 if: ${{ !contains(join(needs.*.result, ','), 'failure') && !contains(join(needs.*.result, ','), 'cancelled') }} - name: Mark the job as unsuccessful run: exit 1 if: contains(join(needs.*.result, ','), 'failure') || contains(join(needs.*.result, ','), 'cancelled')