-
Notifications
You must be signed in to change notification settings - Fork 86
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* add support for nix * hack around cachedMake script of coq-nix-toolbox * update coq-nix-toolbox version * testing with mac os CI Co-authored-by: Kenji Maillard <kenji@maillard.blue>
- Loading branch information
Showing
7 changed files
with
426 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
jobs: | ||
coq: | ||
needs: [] | ||
runs-on: macos-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target coq | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "coq" | ||
equations: | ||
needs: [] | ||
runs-on: macos-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target equations | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"equations\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "equations" | ||
metacoq: | ||
needs: | ||
- equations | ||
runs-on: macos-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target metacoq | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"metacoq\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: 'Building/fetching previous CI target: equations' | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "equations" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "metacoq" | ||
name: Nix CI for bundle default | ||
'on': | ||
pull_request: | ||
paths: | ||
- .github/workflows/** | ||
pull_request_target: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
push: | ||
branches: | ||
- master |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,127 @@ | ||
jobs: | ||
coq: | ||
needs: [] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target coq | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"coq\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "coq" | ||
equations: | ||
needs: [] | ||
runs-on: ubuntu-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target equations | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"equations\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "equations" | ||
metacoq: | ||
needs: | ||
- equations | ||
runs-on: ubuntu-latest | ||
steps: | ||
- 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 if [ -z \"$merge_commit\" ]; 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@v2 | ||
with: | ||
fetch-depth: 0 | ||
ref: ${{ env.tested_commit }} | ||
- name: Cachix install | ||
uses: cachix/install-nix-action@v16 | ||
with: | ||
nix_path: nixpkgs=channel:nixpkgs-unstable | ||
- name: Cachix setup metacoq | ||
uses: cachix/cachix-action@v10 | ||
with: | ||
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }} | ||
extraPullNames: coq, coq-community | ||
name: metacoq | ||
- id: stepCheck | ||
name: Checking presence of CI target metacoq | ||
run: "nb_dry_run=$(NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link \\\n --argstr\ | ||
\ bundle \"default\" --argstr job \"metacoq\" \\\n --dry-run 2>&1 > /dev/null)\n\ | ||
echo $nb_dry_run\necho ::set-output name=status::$(echo $nb_dry_run | grep\ | ||
\ \"built:\" | sed \"s/.*/built/\")\n" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: 'Building/fetching previous CI target: equations' | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "equations" | ||
- if: steps.stepCheck.outputs.status == 'built' | ||
name: Building/fetching current CI target | ||
run: NIXPKGS_ALLOW_UNFREE=1 nix-build --no-out-link --argstr bundle "default" | ||
--argstr job "metacoq" | ||
name: Nix CI for bundle default | ||
'on': | ||
pull_request: | ||
paths: | ||
- .github/workflows/** | ||
pull_request_target: | ||
types: | ||
- opened | ||
- synchronize | ||
- reopened | ||
push: | ||
branches: | ||
- master |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#! /usr/bin/bash | ||
|
||
# USAGE: To be run from the top directory of metacoq | ||
|
||
# This whole file is a hack around coq-nix-toolbox to manage the | ||
# structure of metacoq directories | ||
|
||
export currentDir=$PWD | ||
export configDir=$currentDir/.nix | ||
|
||
#There should be a way to ask nix directly | ||
coq_version='8.14' | ||
|
||
my-nix-build-with-target (){ | ||
target=$1 | ||
shift | ||
env -i PATH=$PATH NIX_PATH=$NIX_PATH nix-build -A $target \ | ||
--argstr bundle "$selectedBundle" --no-out-link\ | ||
--option narinfo-cache-negative-ttl 0 $* | ||
} | ||
|
||
my-cachedMake (){ | ||
cproj=$currentDir/$coqproject | ||
cprojDir=$(dirname $cproj) | ||
nb_dry_run=$(my-nix-build-with-target $1 --dry-run 2>&1 > /dev/null) | ||
if echo $nb_dry_run | grep -q "built:"; then | ||
echo "The compilation result is not in cache." | ||
echo "Either it is not in cache (yet) or your must check your cachix configuration." | ||
kill -INT $$ | ||
else | ||
build=$(my-nix-build-with-target $1) | ||
realpath=$2 | ||
namespace=$3 | ||
logpath=${namespace/.//} | ||
vopath="$build/lib/coq/$coq_version/user-contrib/$logpath" | ||
dest=$cprojDir/$realpath | ||
if [[ -d $vopath ]] | ||
then echo "Compiling/Fetching and copying vo from $vopath to $realpath" | ||
cp -nr --no-preserve=mode,ownership $vopath/* $dest | ||
else echo "Error: cannot find compiled $logpath, check your .nix/config.nix" | ||
fi | ||
fi | ||
} | ||
|
||
my-cachedMake 'template-coq' 'template-coq/theories' 'MetaCoq.Template' | ||
my-cachedMake 'pcuic' 'pcuic/theories' 'MetaCoq.PCUIC' | ||
my-cachedMake 'safechecker' 'safechecker/theories' 'MetaCoq.SafeChecker' | ||
my-cachedMake 'erasure' 'erasure/theories' 'MetaCoq.Erasure' | ||
|
||
unset -f my-nix-build-with-target | ||
unset -f my-cachedMake |
Oops, something went wrong.