jobs:
  ExtLib:
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (ExtLib)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"ExtLib\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "ExtLib"
  QuickChick:
    needs:
    - coq
    - mathcomp-boot
    - ExtLib
    - simple-io
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (QuickChick)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"QuickChick\" \\\n   --dry-run 2> err > out ||
        (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: ExtLib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "ExtLib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: simple-io'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "simple-io"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "QuickChick"
  coq:
    needs:
    - rocq-core
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (coq)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"coq\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
  coq-bits:
    needs:
    - coq
    - mathcomp-algebra
    - 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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (coq-bits)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"coq-bits\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra-tactics'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra-tactics"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq-bits"
  coqeal:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - 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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (coqeal)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"coqeal\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: bignums'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "bignums"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: multinomials'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "multinomials"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-real-closed'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-real-closed"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coqeal"
  coquelicot:
    needs:
    - coq
    - mathcomp-boot
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (coquelicot)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"coquelicot\" \\\n   --dry-run 2> err > out ||
        (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coquelicot"
  deriving:
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (deriving)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"deriving\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "deriving"
  fourcolor:
    needs:
    - coq
    - mathcomp-boot
    - mathcomp-fingroup
    - mathcomp-algebra
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (fourcolor)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"fourcolor\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "fourcolor"
  hierarchy-builder:
    needs:
    - rocq-core
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"hierarchy-builder\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq-elpi'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq-elpi"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
  mathcomp:
    needs:
    - rocq-core
    - mathcomp-character
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-character'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-character"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp"
  mathcomp-algebra:
    needs:
    - rocq-core
    - mathcomp-order
    - mathcomp-fingroup
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-algebra\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-order'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-order"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: micromega-plugin'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "micromega-plugin"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
  mathcomp-algebra-tactics:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - 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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-algebra-tactics\" \\\n   --dry-run 2>
        err > out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"\
        Error: getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq-elpi'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq-elpi"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-zify'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-zify"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra-tactics"
  mathcomp-analysis:
    needs:
    - coq
    - mathcomp-reals
    - mathcomp-field
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-analysis)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-analysis\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-reals'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-analysis"
  mathcomp-analysis-stdlib:
    needs:
    - coq
    - mathcomp-analysis
    - mathcomp-reals-stdlib
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-analysis-stdlib)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-analysis-stdlib\" \\\n   --dry-run 2>
        err > out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"\
        Error: getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-analysis'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-analysis"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-reals-stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals-stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-analysis-stdlib"
  mathcomp-bigenough:
    needs:
    - rocq-core
    - mathcomp-boot
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-bigenough\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-bigenough"
  mathcomp-boot:
    needs:
    - rocq-core
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-boot)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-boot\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
  mathcomp-character:
    needs:
    - rocq-core
    - mathcomp-field
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-character)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-character\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-character"
  mathcomp-classical:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - mathcomp-finmap
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-classical)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-classical\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-finmap'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-finmap"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-classical"
  mathcomp-experimental-reals:
    needs:
    - coq
    - mathcomp-reals
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-experimental-reals)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-experimental-reals\" \\\n   --dry-run
        2> err > out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo
        \"Error: getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-reals'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-experimental-reals"
  mathcomp-field:
    needs:
    - rocq-core
    - mathcomp-solvable
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-field\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-solvable'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-solvable"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-field"
  mathcomp-fingroup:
    needs:
    - rocq-core
    - mathcomp-boot
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-fingroup)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-fingroup\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
  mathcomp-finmap:
    needs:
    - coq
    - mathcomp-boot
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-finmap\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-finmap"
  mathcomp-order:
    needs:
    - rocq-core
    - mathcomp-boot
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-order)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-order\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-order"
  mathcomp-real-closed:
    needs:
    - coq
    - mathcomp-ssreflect
    - mathcomp-algebra
    - mathcomp-field
    - mathcomp-fingroup
    - mathcomp-solvable
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-real-closed\" \\\n   --dry-run 2> err
        > out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-field'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-solvable'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-solvable"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-real-closed"
  mathcomp-reals:
    needs:
    - coq
    - mathcomp-classical
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-reals)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-reals\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-classical'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-classical"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals"
  mathcomp-reals-stdlib:
    needs:
    - coq
    - mathcomp-reals
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-reals-stdlib)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-reals-stdlib\" \\\n   --dry-run 2> err
        > out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-reals'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-reals-stdlib"
  mathcomp-single:
    needs:
    - rocq-core
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-single)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-single\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: micromega-plugin'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "micromega-plugin"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-single"
  mathcomp-solvable:
    needs:
    - rocq-core
    - mathcomp-algebra
    - hierarchy-builder
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-solvable)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-solvable\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: hierarchy-builder'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "hierarchy-builder"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-solvable"
  mathcomp-ssreflect:
    needs:
    - coq
    - mathcomp-boot
    - mathcomp-order
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-ssreflect\" \\\n   --dry-run 2> err >
        out || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error:
        getting derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-order'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-order"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
  mathcomp-word:
    needs:
    - coq
    - mathcomp-algebra
    - mathcomp-ssreflect
    - mathcomp-fingroup
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (mathcomp-word)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"mathcomp-word\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-word"
  mathcomp-zify:
    needs:
    - coq
    - mathcomp-boot
    - mathcomp-algebra
    - mathcomp-fingroup
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - 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.1\" --argstr job \"mathcomp-zify\" \\\n   --dry-run 2> err > out
        || (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-zify"
  multinomials:
    needs:
    - coq
    - mathcomp-boot
    - mathcomp-algebra
    - mathcomp-finmap
    - mathcomp-fingroup
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (multinomials)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"multinomials\" \\\n   --dry-run 2> err > out ||
        (touch fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting
        derivation failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-boot'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-boot"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-algebra'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-algebra"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-finmap'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-finmap"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-fingroup'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-fingroup"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "multinomials"
  odd-order:
    needs:
    - coq
    - mathcomp-character
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (odd-order)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"odd-order\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-character'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-character"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "odd-order"
  reglang:
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (reglang)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"reglang\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-ssreflect'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "mathcomp-ssreflect"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "stdlib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "reglang"
  rocq-core:
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (rocq-core)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"rocq-core\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "rocq-core"
  simple-io:
    needs:
    - coq
    - ExtLib
    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@v6
      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@v6
      with:
        fetch-depth: 0
        ref: ${{ env.tested_commit }}
    - name: Cachix install
      uses: cachix/install-nix-action@v31
      with:
        nix_path: nixpkgs=channel:nixpkgs-unstable
    - name: Cachix setup math-comp
      uses: cachix/cachix-action@v16
      with:
        authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
        extraPullNames: coq, coq-community
        name: math-comp
    - id: stepGetDerivation
      name: Getting derivation for current job (simple-io)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"rocq-9.1\" --argstr job \"simple-io\" \\\n   --dry-run 2> err > out || (touch
        fail; true)\ncat out err\nif [ -e fail ]; then echo \"Error: getting derivation
        failed\"; exit 1; fi\n"
    - id: stepCheck
      name: Checking presence of CI target for current job
      run: "if $(cat out err | grep -q \"built:\") ; then\n  echo \"CI target needs
        actual building\"\n  if $(cat out err | grep -q \"derivations will be built:\"\
        ) ; then\n    echo \"waiting a bit for derivations that should be in cache\"\
        \n    sleep 30\n  fi\nelse\n  echo \"CI target already built\"\n  echo \"\
        status=fetched\" >> $GITHUB_OUTPUT\nfi\n"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: ExtLib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "ExtLib"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle 
        "rocq-9.1" --argstr job "simple-io"
name: Nix CI for bundle rocq-9.1
on:
  pull_request:
    paths:
    - .github/workflows/nix-action-rocq-9.1.yml
  pull_request_target:
    paths-ignore:
    - .github/workflows/nix-action-rocq-9.1.yml
    types:
    - opened
    - synchronize
    - reopened
  push:
    branches:
    - master
