Upload standalone binaries to release pages #3889
Workflow file for this run
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
name: CI (Coq, Windows) | |
# Note that we must split up each command into a separate step for Windows, because otherwise we don't get error code | |
# See also https://github.com/avsm/setup-ocaml/issues/72 | |
on: | |
push: | |
branches: [ master , sp2019latest , v8.6 , v8.8 , v8.10 ] | |
pull_request: | |
merge_group: | |
workflow_dispatch: | |
release: | |
types: [published] | |
schedule: | |
- cron: '0 0 1 * *' | |
jobs: | |
build-windows: | |
runs-on: windows-latest | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
NJOBS: "2" | |
COQ_VERSION: "8.17.0" # minimal major version required for bedrock2 components | |
COQEXTRAFLAGS: "-async-proofs-j 1" | |
COQCHKEXTRAFLAGS: "" | |
OPAMYES: "true" | |
OPAMCONFIRMLEVEL: "unsafe-yes" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.x | |
- name: Set up OCaml | |
uses: ocaml/setup-ocaml@v2 | |
with: | |
ocaml-compiler: 4.11.1 | |
opam-repositories: | | |
opam-repository-mingw: https://github.com/ocaml-opam/opam-repository-mingw.git#sunset | |
default: https://github.com/ocaml/opam-repository.git | |
- run: opam depext coq.${{ env.COQ_VERSION }} | |
- run: opam pin add --kind=version coq ${{ env.COQ_VERSION }} | |
- name: Install System Dependencies | |
run: | | |
%CYGWIN_ROOT%\setup-x86_64.exe -qnNdO -P time,zip | |
shell: cmd | |
- name: Work around https://github.com/actions/checkout/issues/766 | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'git config --global --add safe.directory "*"' | |
shell: cmd | |
- name: echo build params | |
run: ./etc/ci/describe-system-config-win.bat | |
shell: cmd | |
- name: deps | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j${NJOBS} deps' | |
shell: cmd | |
- name: standalone-ocaml | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j${NJOBS} standalone-ocaml' | |
shell: cmd | |
- name: package-standalone-ocaml | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh package-standalone-ocaml PACKAGE=standalone.zip PACKAGE_CMD=zip' | |
shell: cmd | |
- name: coq | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j1 coq' | |
shell: cmd | |
- name: all-except-generated | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j1 all-except-generated' | |
shell: cmd | |
- name: c-files lite-generated-files | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j${NJOBS} c-files lite-generated-files' | |
shell: cmd | |
- name: only-test-amd64-files-lite | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- etc/ci/github-actions-make.sh -j${NJOBS} only-test-amd64-files-lite SLOWEST_FIRST=1' | |
shell: cmd | |
- name: upload OCaml files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ExtractionOCaml | |
path: src/ExtractionOCaml | |
- name: upload standalone files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: standalone-windows | |
path: standalone.zip | |
- name: display timing info | |
run: type time-of-build-pretty.log | |
shell: cmd | |
- name: display per-line timing info | |
run: | | |
%CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; etc/ci/github-actions-display-per-line-timing.sh' | |
shell: cmd | |
# - name: upload timing and .vo info | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: build-outputs | |
# path: . | |
# if: always () | |
# - name: validate | |
# run: | | |
# %CYGWIN_ROOT%\bin\bash.exe -l -c 'cd "%cd%"; opam exec -- make TIMED=1 validate COQCHKFLAGS="-o ${COQCHKEXTRAFLAGS}"' | |
# shell: cmd | |
# if: github.event_name != 'pull_request' | |
test-standalone-windows: | |
runs-on: windows-latest | |
needs: build-windows | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download standalone Windows | |
uses: actions/download-artifact@v3 | |
with: | |
name: standalone-windows | |
path: dist-windows/ | |
- name: List files | |
run: Get-ChildItem dist-windows -Name | |
- name: Rename files | |
run: | | |
New-Item -ItemType Directory -Path dist | |
Move-Item dist-windows/standalone.zip dist/fiat-crypto-windows.zip | |
Get-ChildItem dist -Name | |
- name: Unpack files | |
run: | | |
Expand-Archive -Path dist/fiat-crypto-windows.zip -DestinationPath dist | |
Get-ChildItem dist | |
- run: .\dist\word_by_word_montgomery.exe -h | |
- run: .\dist\unsaturated_solinas.exe -h | |
- run: .\dist\saturated_solinas.exe -h | |
- run: .\dist\base_conversion.exe -h | |
publish-standalone: | |
runs-on: ubuntu-latest | |
needs: build-windows | |
permissions: | |
contents: write # IMPORTANT: mandatory for making GitHub Releases | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download standalone Windows | |
uses: actions/download-artifact@v3 | |
with: | |
name: standalone-windows | |
path: dist-windows/ | |
- name: List files | |
run: find dist-windows | |
- name: Unpack files | |
run: | | |
mkdir dist | |
mv dist-windows/standalone.zip dist/fiat-crypto-windows.zip | |
find dist | |
unzip -l dist/fiat-crypto-windows.zip | |
- name: Upload artifacts to GitHub Release | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
# Upload to GitHub Release using the `gh` CLI. | |
# `dist/` contains the built packages | |
run: >- | |
gh release upload | |
'${{ github.ref_name }}' dist/** | |
--repo '${{ github.repository }}' | |
if: ${{ startsWith(github.ref, 'refs/tags/') && github.event_name == 'release' }} |