Skip to content

Fix windows CI build #495

Fix windows CI build

Fix windows CI build #495

name: "Check Dependencies"
on:
workflow_dispatch:
schedule:
- cron: '30 5 * * 1' # At 05:30 AM, only on Monday
pull_request:
paths:
- '.github/scripts/**'
- '.github/workflows/build.yml'
- '.github/workflows/check-dependencies.yml'
- 'flake.*'
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Install Nix
uses: nixbuild/nix-quick-install-action@v34
- name: lookup nix versions
id: nixpkgs
run: |
NIXPKGS_REV="$(jq -r '.nodes.nixpkgs.locked.rev' < flake.lock)"
VERSIONS="$(nix eval -I "nixpkgs=https://github.com/NixOS/nixpkgs/archive/$NIXPKGS_REV.tar.gz" --impure --json \
--expr 'let pkgs = (import <nixpkgs> {}); in { "secp256k1" = pkgs.secp256k1.version; "ff" = pkgs.libff.version; "geth" = pkgs.go-ethereum.version; }')"
LIBFF_REV="$(jq .ff -r <<<"$VERSIONS")"
LIBSECP256K1_REV="$(jq .secp256k1 -r <<<"$VERSIONS")"
GETH_VERSION="$(jq .geth -r <<<"$VERSIONS")"
{ echo "nixpkgs=$NIXPKGS_REV"; echo "libff=$LIBFF_REV"; echo "libsecp256k1=$LIBSECP256K1_REV"; echo "geth=$GETH_VERSION"; } >> "$GITHUB_OUTPUT"
- name: lookup local versions
id: local
run: |
LIBFF_REV="$(grep '^INSTALL_VERSION=' .github/scripts/install-libff.sh | cut -f2 -d=)"
LIBSECP256K1_REV="$(grep '^INSTALL_VERSION=' .github/scripts/install-libsecp256k1.sh | cut -f2 -d=)"
SOLIDITY_REV_FLAKE="$(jq -r '.nodes.solidity.locked.rev' < flake.lock)"
SOLIDITY_REV_BUILD="$(grep -A2 'repository: argotorg/solidity' .github/workflows/build.yml | grep 'ref:' | tr -d ' ' | cut -f2 -d:)"
SOLC_VERSION_FLAKE="$(grep -oP 'solc_\K[0-9_]+' flake.nix | head -1 | tr '_' '.')"
SOLC_VERSION_BUILD="$(grep -oP 'solidity/releases/download/v\K[0-9.]+' .github/workflows/build.yml)"
GETH_VERSION_BUILD="$(grep -oP 'go-ethereum/cmd/evm@v\K[0-9.]+' .github/workflows/build.yml)"
{
echo "libff=$LIBFF_REV"
echo "libsecp256k1=$LIBSECP256K1_REV"
echo "solidity_rev_flake=$SOLIDITY_REV_FLAKE"
echo "solidity_rev_build=$SOLIDITY_REV_BUILD"
echo "solc_version_flake=$SOLC_VERSION_FLAKE"
echo "solc_version_build=$SOLC_VERSION_BUILD"
echo "geth=$GETH_VERSION_BUILD"
} >> "$GITHUB_OUTPUT"
- name: compare versions
run: |
if [ "$LIBFF_NIXPKGS" != "$LIBFF_LOCAL" ]; then
echo "libff versions do not match! nix=$LIBFF_NIXPKGS local=$LIBFF_LOCAL"
exit 1
fi
if [ "$LIBSECP256K1_NIXPKGS" != "$LIBSECP256K1_LOCAL" ]; then
echo "libsecp256k1 versions do not match! nix=$LIBSECP256K1_NIXPKGS local=$LIBSECP256K1_LOCAL"
exit 1
fi
if [ "$GETH_NIXPKGS" != "$GETH_LOCAL" ]; then
echo "go-ethereum versions do not match! nix=$GETH_NIXPKGS local=$GETH_LOCAL"
exit 1
fi
if [ "$SOLIDITY_REV_FLAKE" != "$SOLIDITY_REV_BUILD" ]; then
echo "solidity repo revisions do not match! flake.lock=$SOLIDITY_REV_FLAKE build.yml=$SOLIDITY_REV_BUILD"
exit 1
fi
if [ "$SOLC_VERSION_FLAKE" != "$SOLC_VERSION_BUILD" ]; then
echo "solc versions do not match! flake.nix=$SOLC_VERSION_FLAKE build.yml=$SOLC_VERSION_BUILD"
exit 1
fi
env:
LIBFF_NIXPKGS: ${{ steps.nixpkgs.outputs.libff }}
LIBFF_LOCAL: ${{ steps.local.outputs.libff }}
LIBSECP256K1_NIXPKGS: ${{ steps.nixpkgs.outputs.libsecp256k1 }}
LIBSECP256K1_LOCAL: ${{ steps.local.outputs.libsecp256k1 }}
GETH_NIXPKGS: ${{ steps.nixpkgs.outputs.geth }}
GETH_LOCAL: ${{ steps.local.outputs.geth }}
SOLIDITY_REV_FLAKE: ${{ steps.local.outputs.solidity_rev_flake }}
SOLIDITY_REV_BUILD: ${{ steps.local.outputs.solidity_rev_build }}
SOLC_VERSION_FLAKE: ${{ steps.local.outputs.solc_version_flake }}
SOLC_VERSION_BUILD: ${{ steps.local.outputs.solc_version_build }}