Skip to content

Upload standalone binaries to release pages #257

Upload standalone binaries to release pages

Upload standalone binaries to release pages #257

Workflow file for this run

name: CI (Coq, Debian)
on:
push:
branches: [ master , sp2019latest ]
pull_request:
merge_group:
workflow_dispatch:
release:
types: [published]
schedule:
- cron: '0 0 1 * *'
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- env: { DEBIAN: "sid" }
#- env: { DEBIAN: "bookworm" }# restore once 8.17 lands in Debian stable
runs-on: 'ubuntu-22.04'
env: ${{ matrix.env }}
name: ${{ matrix.env.DEBIAN }}
concurrency:
group: ${{ github.workflow }}-${{ matrix.env.DEBIAN }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: setup Debian chroot
run: etc/ci/setup-debian-chroot.sh "$DEBIAN"
- name: host build params
run: etc/ci/describe-system-config.sh
- name: chroot build params
shell: in-debian-chroot.sh {0}
run: CI=1 etc/ci/describe-system-config.sh
- name: make deps
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh -j2 deps
- name: all-except-generated
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh -j2 all-except-generated
- name: generated-files
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh -j2 generated-files
- run: tar -czvf generated-files.tgz fiat-*/
if: ${{ failure() }}
- name: upload generated files
uses: actions/upload-artifact@v3
with:
name: generated-files-${{ matrix.env.DEBIAN }}
path: generated-files.tgz
if: ${{ failure() }}
- name: package-standalone-ocaml
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh package-standalone-ocaml
- name: upload standalone files
uses: actions/upload-artifact@v3
with:
name: standalone-${{ matrix.env.DEBIAN }}
path: standalone.tar.gz
- name: upload OCaml files
uses: actions/upload-artifact@v3
with:
name: ExtractionOCaml-${{ matrix.env.DEBIAN }}
path: src/ExtractionOCaml
if: always ()
- name: standalone-haskell
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh -j1 standalone-haskell GHCFLAGS='+RTS -M6G -RTS'
- name: upload Haskell files
uses: actions/upload-artifact@v3
with:
name: ExtractionHaskell-${{ matrix.env.DEBIAN }}
path: src/ExtractionHaskell
if: always ()
- name: display timing info
run: cat time-of-build-pretty.log
- name: display per-line timing info
run: etc/ci/github-actions-display-per-line-timing.sh
test-amd64:
runs-on: ubuntu-latest
env: { DEBIAN: "sid" }
concurrency:
group: ${{ github.workflow }}-test-amd64-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
needs: build
steps:
- name: checkout repo
uses: actions/checkout@v4
with:
submodules: recursive
- name: setup Debian chroot
run: etc/ci/setup-debian-chroot.sh "$DEBIAN"
- name: Download a Build Artifact
uses: actions/download-artifact@v3
with:
name: ExtractionOCaml-sid
path: src/ExtractionOCaml
- name: make binaries executable
run: git check-ignore src/ExtractionOCaml/* | grep -v '\.' | xargs chmod +x
- name: make only-test-amd64-files
shell: in-debian-chroot.sh {0}
run: etc/ci/github-actions-make.sh -j2 only-test-amd64-files SLOWEST_FIRST=1
env:
ALLOW_DIFF: 1
test-standalone-debian:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- name: Download standalone sid
uses: actions/download-artifact@v3
with:
name: standalone-sid
path: dist-sid/
- name: List files
run: find dist-sid
- name: Rename files
run: |
mkdir dist
mv dist-sid/standalone.tar.gz dist/fiat-crypto-sid.tar.gz
find dist
tar -tvf dist/fiat-crypto-sid.tar.gz
- name: Unpack and Test files
run: |
cd dist
tar -xzvf fiat-crypto-sid.tar.gz
ls -la .
for prog in word_by_word_montgomery unsaturated_solinas saturated_solinas base_conversion; do
echo "::group::$prog"
./$prog -h
echo "::endgroup::"
done
publish-standalone:
runs-on: ubuntu-latest
needs: build
permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
steps:
- uses: actions/checkout@v4
- name: Download standalone sid
uses: actions/download-artifact@v3
with:
name: standalone-sid
path: dist-sid/
- name: List files
run: find dist-sid
- name: Unpack files
run: |
mkdir dist
mv dist-sid/standalone.tar.gz dist/fiat-crypto-sid.tar.gz
find dist
tar -tvf dist/fiat-crypto-sid.tar.gz
- 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' }}
debian-check-all:
runs-on: ubuntu-latest
needs: [build, test-amd64]
if: always()
steps:
- run: echo 'build passed'
if: ${{ needs.build.result == 'success' }}
- run: echo 'test-amd64 passed'
if: ${{ needs.test-amd64.result == 'success' }}
- run: echo 'build failed' && false
if: ${{ needs.build.result != 'success' }}
- run: echo 'test-amd64 failed' && false
if: ${{ needs.test-amd64.result != 'success' }}