jobs:
  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
        \"9.0\" --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 "9.0" 
        --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 "9.0" 
        --argstr job "coq"
  coq-elpi:
    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-elpi)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --argstr job \"coq-elpi\" \\\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 "9.0" 
        --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 "9.0" 
        --argstr job "coq-elpi"
  coqeal:
    needs:
    - coq
    - 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
        \"9.0\" --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --argstr job "coqeal"
  hierarchy-builder:
    needs:
    - rocq-core
    - coq-elpi
    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
        \"9.0\" --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --argstr job "hierarchy-builder"
  mathcomp-analysis:
    needs:
    - rocq-core
    - 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 (mathcomp-analysis)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --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: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "rocq-core"
    - 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 "9.0" 
        --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 "9.0" 
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-bigenough"
    - 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 "9.0" 
        --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 "9.0" 
        --argstr job "mathcomp-analysis"
  mathcomp-analysis-stdlib:
    needs:
    - rocq-core
    - mathcomp-analysis
    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
        \"9.0\" --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: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "rocq-core"
    - 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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --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 "9.0" 
        --argstr job "mathcomp-analysis-stdlib"
  mathcomp-apery:
    needs:
    - coq
    - coqeal
    - 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 (mathcomp-apery)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --argstr job \"mathcomp-apery\" \\\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 "9.0" 
        --argstr job "coq"
    - 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 "9.0" 
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coqeal'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "coqeal"
    - 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 "9.0" 
        --argstr job "mathcomp-real-closed"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-bigenough"
    - 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 "9.0" 
        --argstr job "mathcomp-zify"
    - 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 "9.0" 
        --argstr job "mathcomp-algebra-tactics"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-apery"
  mathcomp-experimental-reals:
    needs:
    - rocq-core
    - mathcomp-analysis
    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
        \"9.0\" --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: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "rocq-core"
    - 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 "9.0" 
        --argstr job "mathcomp-analysis"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-bigenough"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-experimental-reals"
  mathcomp-infotheo:
    needs:
    - coq
    - mathcomp-analysis-stdlib
    runs-on: ubuntu-latest
    steps:
    - name: Determine which commit to initially checkout
      run: "if [ ${{ github.event_name }} = \"push\" ]; then\n  echo \"target_commit=${{
        github.sha }}\" >> $GITHUB_ENV\nelse\n  echo \"target_commit=${{ github.event.pull_request.head.sha
        }}\" >> $GITHUB_ENV\nfi\n"
    - name: Git checkout
      uses: actions/checkout@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-infotheo)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --argstr job \"mathcomp-infotheo\" \\\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 "9.0" 
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-analysis-stdlib'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-analysis-stdlib"
    - 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 "9.0" 
        --argstr job "mathcomp-algebra-tactics"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: interval'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "interval"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-infotheo"
  mathcomp-real-closed:
    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 (mathcomp-real-closed)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --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: rocq-core'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --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 "9.0" 
        --argstr job "mathcomp-field"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-bigenough'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-bigenough"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-real-closed"
  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
        \"9.0\" --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 "9.0" 
        --argstr job "rocq-core"
  ssprove:
    needs:
    - coq
    - mathcomp-analysis
    - mathcomp-experimental-reals
    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 (ssprove)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --argstr job \"ssprove\" \\\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 "9.0" 
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: equations'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "equations"
    - 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 "9.0" 
        --argstr job "mathcomp-boot"
    - 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 "9.0" 
        --argstr job "mathcomp-analysis"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-experimental-reals'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-experimental-reals"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: extructures'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "extructures"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: deriving'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "deriving"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: mathcomp-word'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "mathcomp-word"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "ssprove"
  validsdp:
    needs:
    - coq
    - coqeal
    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 (validsdp)
      run: "NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n   --argstr bundle
        \"9.0\" --argstr job \"validsdp\" \\\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 "9.0" 
        --argstr job "coq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: libvalidsdp'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "libvalidsdp"
    - 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 "9.0" 
        --argstr job "mathcomp-field"
    - 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 "9.0" 
        --argstr job "bignums"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: flocq'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "flocq"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: interval'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "interval"
    - 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 "9.0" 
        --argstr job "mathcomp-reals-stdlib"
    - 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 "9.0" 
        --argstr job "multinomials"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: 'Building/fetching previous CI target: coqeal'
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "coqeal"
    - if: steps.stepCheck.outputs.status != 'fetched'
      name: Building/fetching current CI target
      run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "9.0" 
        --argstr job "validsdp"
name: Nix CI for bundle 9.0
on:
  pull_request:
    paths:
    - .github/workflows/nix-action-9.0.yml
  pull_request_target:
    paths-ignore:
    - .github/workflows/nix-action-9.0.yml
    types:
    - opened
    - synchronize
    - reopened
  push:
    branches:
    - master
