diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index baa6335..413fa6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: # https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners - os: [ubuntu-latest, macos-14, macos-15, macos-15-intel] + os: [ubuntu-latest, ubuntu-24.04-arm, macos-14, macos-15, macos-15-intel] fail-fast: false runs-on: ${{ matrix.os }} permissions: @@ -31,7 +31,7 @@ jobs: nix develop .# --command -- bash -c "solc-0.8.33 --version" # test `nix shell` - nix shell .#solc_0_8_19 + nix shell .#solc_0_8_33 # test solc.nix as input to other flakes # Note: overriding flake input is needed as a workaround to local sub flake with overlapping paths. diff --git a/flake.nix b/flake.nix index 0342ccd..4703841 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,7 @@ flake-utils.lib.eachSystem [ "x86_64-linux" + "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ] diff --git a/mk-solc-static-pkg.nix b/mk-solc-static-pkg.nix index df03b5c..149106c 100644 --- a/mk-solc-static-pkg.nix +++ b/mk-solc-static-pkg.nix @@ -24,6 +24,7 @@ let solc-flavor = { x86_64-linux = "solc-static-linux"; + aarch64-linux = "solc-static-linux-arm"; x86_64-darwin = "solc-macos-amd64"; aarch64-darwin = "solc-macos-aarch64"; } @@ -40,6 +41,10 @@ let url = if solc-flavor == "solc-static-linux" then "https://github.com/argotorg/solidity/releases/download/v${version}/solc-static-linux" + else if + solc-flavor == "solc-static-linux-arm" && builtins.compareVersions solc_ver "0.8.31" > -1 + then + "https://github.com/argotorg/solidity/releases/download/v${version}/solc-static-linux-arm" else if solc-flavor == "solc-macos-amd64" then macosUniversalBuildUrl else if solc-flavor == "solc-macos-aarch64" && builtins.compareVersions solc_ver "0.8.5" > -1 then diff --git a/solc-listing.nix b/solc-listing.nix index c3d7b1f..b3153e5 100644 --- a/solc-listing.nix +++ b/solc-listing.nix @@ -3,6 +3,7 @@ version = "0.8.33"; sha256 = { solc-static-linux = "sha256-EnTlxGIa5HgJDFofSEZv08X2WO2eFLFaCyE9yAYhVGg="; + solc-static-linux-arm = "sha256-njTPuRanW91kGx5wbVOK/p+0RxrmEFqQd+eQigWN+Vk="; solc-macos-amd64 = "sha256-gyQoBZHOOY1+JyKEa8EOzxd5sToyjvl7aHySzZxwgBo="; solc-macos-aarch64 = "sha256-gyQoBZHOOY1+JyKEa8EOzxd5sToyjvl7aHySzZxwgBo="; }; @@ -11,6 +12,7 @@ version = "0.8.32"; sha256 = { solc-static-linux = "sha256-qvx+QJoQtmkBDNkyB0dKQ2T7zL5jUQasCcEs0MtHWhs="; + solc-static-linux-arm = "sha256-8miqF9C3cIBs65By/1TIlw/PdKv0+dRP7xG0gx72QUw="; solc-macos-amd64 = "sha256-X4Z4XrbFCHQPi1eiHKz+cPlfxpUOMMq1aKoNSu+YTjE="; solc-macos-aarch64 = "sha256-X4Z4XrbFCHQPi1eiHKz+cPlfxpUOMMq1aKoNSu+YTjE="; }; @@ -19,6 +21,7 @@ version = "0.8.31"; sha256 = { solc-static-linux = "sha256-qsnNARbprgzT2PZKhkE4GEXcnxLipSZT3jb7YZMj5Vc="; + solc-static-linux-arm = "sha256-rPNY2C2n2wM967L02xHhyc/LArDLW13buWNa2Be0G90="; solc-macos-amd64 = "sha256-9aJD1rLdj7owfjbF/votjrOudLqBA20cF8lxtdNGrek="; solc-macos-aarch64 = "sha256-9aJD1rLdj7owfjbF/votjrOudLqBA20cF8lxtdNGrek="; }; diff --git a/test/flake.nix b/test/flake.nix index a71a9d7..e2b388b 100644 --- a/test/flake.nix +++ b/test/flake.nix @@ -19,6 +19,7 @@ flake-utils.lib.eachSystem [ "x86_64-linux" + "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ] @@ -46,6 +47,8 @@ solc_0_7_6 solc_0_8_33 ] + else if system == "aarch64-linux" then + [ solc_0_8_31 ] else if system == "x86_64-darwin" then [ solc_0_4_11 diff --git a/utils/create-listing.sh b/utils/create-listing.sh index ceacadd..fb7f4c6 100755 --- a/utils/create-listing.sh +++ b/utils/create-listing.sh @@ -26,6 +26,7 @@ print_hash() { version = "${s#solc-}"; sha256 = { $(print_hash solc-static-linux "$c"/static-linux/"$s") + $(print_hash solc-static-linux-arm "$c"/static-linux-arm/"$s") $(print_hash solc-macos-amd64 "$c"/macos-amd64/"$s") $(print_hash solc-macos-aarch64 "$c"/macos-aarch64/"$s") }; diff --git a/utils/download.sh b/utils/download.sh index cc0689a..937fba1 100755 --- a/utils/download.sh +++ b/utils/download.sh @@ -32,6 +32,14 @@ download_one_version() { https://github.com/argotorg/solidity/releases/download/v"$v"/solc-static-linux \ "$T"/bin/static-linux/solc-"$v" + if [ "$(semver compare $v 0.8.30)" == 1 ]; then + # starting from 0.8.31, solidity distribution started to provide linux arm builds + mkdir -p "$T/bin/static-linux-arm" + run_wget \ + https://github.com/argotorg/solidity/releases/download/v"$v"/solc-static-linux-arm \ + "$T"/bin/static-linux-arm/solc-"$v" + fi + mkdir -p "$T/bin/macos-amd64" run_wget \ https://binaries.soliditylang.org/macosx-amd64/$(jq -r ".releases.\"$1\"" "$macos_versions") \