jobs:
  bignums:
    needs:
    - coq
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (bignums)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"bignums\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "bignums"
  coq:
    needs: []
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (coq)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"coq\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
  coq-elpi:
    needs:
    - coq
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (coq-elpi)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"coq-elpi\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq-elpi"
  coqeal:
    needs:
    - coq
    - mathcomp-algebra
    - bignums
    - multinomials
    - mathcomp-real-closed
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (coqeal)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"coqeal\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: bignums'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "bignums"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: multinomials'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "multinomials"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-real-closed'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-real-closed"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coqeal"
  hierarchy-builder:
    needs:
    - coq
    - coq-elpi
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (hierarchy-builder)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"hierarchy-builder\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq-elpi'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq-elpi"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "hierarchy-builder"
  mathcomp:
    needs:
    - coq
    - stdlib
    - mathcomp-ssreflect
    - mathcomp-algebra
    - mathcomp-field
    - hierarchy-builder
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-solvable'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-solvable"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-character'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-character"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp"
  mathcomp-algebra:
    needs:
    - coq
    - stdlib
    - mathcomp-ssreflect
    - hierarchy-builder
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-algebra)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-algebra\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
  mathcomp-algebra-tactics:
    needs:
    - coq
    - mathcomp-algebra
    - coq-elpi
    - mathcomp-zify
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-algebra-tactics)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-algebra-tactics\" \\\n   --dry-run 2>
        err > out || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq-elpi'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq-elpi"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-zify'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-zify"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra-tactics"
  mathcomp-apery:
    needs:
    - coq
    - mathcomp-field
    - coqeal
    - mathcomp-real-closed
    - mathcomp-bigenough
    - mathcomp-zify
    - mathcomp-algebra-tactics
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-apery)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-apery\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coqeal'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coqeal"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-real-closed'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-real-closed"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-bigenough"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-zify'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-zify"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra-tactics'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra-tactics"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-apery"
  mathcomp-bigenough:
    needs:
    - coq
    - mathcomp-ssreflect
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-bigenough)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-bigenough\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-bigenough"
  mathcomp-field:
    needs:
    - coq
    - stdlib
    - mathcomp-ssreflect
    - mathcomp-algebra
    - hierarchy-builder
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-field)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-field\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-solvable'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-solvable"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-field"
  mathcomp-finmap:
    needs:
    - coq
    - mathcomp-ssreflect
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-finmap)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-finmap\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-finmap"
  mathcomp-real-closed:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - mathcomp-field
    - mathcomp-bigenough
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-real-closed)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-real-closed\" \\\n   --dry-run 2> err
        > out || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-solvable'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-solvable"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-bigenough"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-real-closed"
  mathcomp-ssreflect:
    needs:
    - coq
    - stdlib
    - hierarchy-builder
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-ssreflect)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-ssreflect\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
  mathcomp-zify:
    needs:
    - coq
    - mathcomp-algebra
    - mathcomp-ssreflect
    - stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-zify)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"mathcomp-zify\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-zify"
  multinomials:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - mathcomp-finmap
    - mathcomp-bigenough
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (multinomials)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"multinomials\" \\\n   --dry-run 2> err > out ||
        (touch fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-finmap'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-finmap"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "mathcomp-bigenough"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "multinomials"
  stdlib:
    needs:
    - coq
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.target_commit }}
    - name: Determine which commit to test
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"tested_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  merge_commit=$(git ls-remote ${{ github.event.repository.html_url
        }} refs/pull/${{ github.event.number }}/merge | cut -f1)\n  mergeable=$(git
        merge --no-commit --no-ff ${{ github.event.pull_request.base.sha }} > /dev/null
        2>&1; echo $?; git merge --abort > /dev/null 2>&1 || true)\n  if [ -z \"$merge_commit\"\
        \ -o \"x$mergeable\" != \"x0\" ]; then\n    echo \"tested_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\n  else\n    echo \"tested_commit=$merge_commit\" >> $GITHUB_ENV\n\
        \  fi\nfi\n"
    - name: Git checkout
      uses: actions/checkout@v4
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v30
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup coq-community
      uses: cachix/cachix-action@v15
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, math-comp
        name: coq-community
    - id: stepGetDerivation
      name: Getting derivation for current job (stdlib)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.0\" --argstr job \"stdlib\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\n"
    - name: Error reporting
      run: "echo \"out=\"; cat out\necho \"err=\"; cat err\n"
    - name: Failure check
      run: if [ -e fail ]; then exit 1; else exit 0; fi;
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: (echo -n status=; cat out err | grep "built:" | sed "s/.*/built/") >> $GITHUB_OUTPUT
    - if: steps.stepCheck.outputs.status == 'built'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status == 'built'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "rocq-9.0"
        --argstr job "stdlib"
name: Nix CI for bundle rocq-9.0
on:
  pull_request:
    paths:
    - .github/workflows/nix-action-rocq-9.0.yml
  pull_request_target:
    paths-ignore:
    - .github/workflows/nix-action-rocq-9.0.yml
    types:
    - opened
    - synchronize
    - reopened
  push:
    branches:
    - master
