From 3e38d2cc071b7896a95557d281f6e3725dc58f18 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Mon, 15 Jul 2024 09:29:17 +0000 Subject: [PATCH] CI jobs: upgrade CVC5 from 1.0.0 to 1.1.2 Since version 1.0.1, CVC5 also releases a binary for macOS ARM, which will enable CBMC CI runs on that platform (see https://github.com/diffblue/cbmc/pull/8382). More recent releases of CVC5, however, have also moved to releasing zip archives rather than single binaries. This necessitates an overhaul of the rules to download and install CVC5 beyond just changing the version number. --- .github/workflows/coverage.yaml | 8 +-- .github/workflows/pull-request-checks.yaml | 64 ++++++++++++---------- .github/workflows/release-packages.yaml | 14 ++--- 3 files changed, 45 insertions(+), 41 deletions(-) diff --git a/.github/workflows/coverage.yaml b/.github/workflows/coverage.yaml index c594bc5eb5a..6acde38463f 100644 --- a/.github/workflows/coverage.yaml +++ b/.github/workflows/coverage.yaml @@ -5,7 +5,7 @@ on: pull_request: branches: [ develop ] env: - cvc5-version: "1.0.0" + cvc5-version: "1.1.2" linux-vcpus: 4 windows-vcpus: 4 @@ -36,9 +36,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 diff --git a/.github/workflows/pull-request-checks.yaml b/.github/workflows/pull-request-checks.yaml index 9432cf705b7..1a8fea1cf3f 100644 --- a/.github/workflows/pull-request-checks.yaml +++ b/.github/workflows/pull-request-checks.yaml @@ -5,7 +5,7 @@ on: pull_request: branches: [ develop ] env: - cvc5-version: "1.0.0" + cvc5-version: "1.1.2" linux-vcpus: 4 windows-vcpus: 4 @@ -29,9 +29,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -115,9 +115,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -225,9 +225,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -297,9 +297,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -363,9 +363,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -423,9 +423,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -470,9 +470,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -600,9 +600,9 @@ jobs: run: z3 --version - name: Download cvc5 binary and make sure it can be deployed run: | - curl -L https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-macOS --output cvc5 - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-macOS-static.zip + unzip -j -d /usr/local/bin cvc5-macOS-static.zip cvc5-macOS-static/bin/cvc5 + rm cvc5-macOS-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -652,9 +652,9 @@ jobs: run: z3 --version - name: Download cvc5 binary and make sure it can be deployed run: | - curl -L https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-macOS --output cvc5 - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-macOS-static.zip + unzip -j -d /usr/local/bin cvc5-macOS-static.zip cvc5-macOS-static/bin/cvc5 + rm cvc5-macOS-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -708,7 +708,9 @@ jobs: Expand-Archive -LiteralPath '.\z3.Zip' -DestinationPath C:\tools echo "c:\tools\z3-4.8.10-x64-win\bin;" >> $env:GITHUB_PATH New-Item -ItemType directory "C:\tools\cvc5" - Invoke-WebRequest -Uri https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Win64.exe -OutFile c:\tools\cvc5\cvc5.exe + Invoke-WebRequest -Uri https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Win64-static.zip -OutFile .\cvc5-Win64-static.zip + Expand-Archive -LiteralPath '.\cvc5-Win64-static.Zip' + Move-Item -Path .\cvc5-Win64-static\cvc5-Win64-static\bin\cvc5.exe c:\tools\cvc5\cvc5.exe echo "c:\tools\cvc5;" >> $env:GITHUB_PATH - name: Confirm z3 solver is available and log the version installed run: z3 --version @@ -769,7 +771,9 @@ jobs: Expand-Archive -LiteralPath '.\z3.Zip' -DestinationPath C:\tools echo "c:\tools\z3-4.8.10-x64-win\bin;" >> $env:GITHUB_PATH New-Item -ItemType directory "C:\tools\cvc5" - wget.exe -O c:\tools\cvc5\cvc5.exe https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Win64.exe + Invoke-WebRequest -Uri https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Win64-static.zip -OutFile .\cvc5-Win64-static.zip + Expand-Archive -LiteralPath '.\cvc5-Win64-static.Zip' + Move-Item -Path .\cvc5-Win64-static\cvc5-Win64-static\bin\cvc5.exe c:\tools\cvc5\cvc5.exe echo "c:\tools\cvc5;" >> $env:GITHUB_PATH New-Item -ItemType directory "C:\tools\parallel" wget.exe -O c:\tools\parallel\parallel https://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel diff --git a/.github/workflows/release-packages.yaml b/.github/workflows/release-packages.yaml index d2f98a07485..e6411f4206a 100644 --- a/.github/workflows/release-packages.yaml +++ b/.github/workflows/release-packages.yaml @@ -2,7 +2,7 @@ on: release: types: [created] env: - cvc5-version: "1.0.0" + cvc5-version: "1.1.2" name: Upload additional release assets jobs: @@ -22,9 +22,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4 @@ -93,9 +93,9 @@ jobs: run: z3 --version - name: Download cvc-5 from the releases page and make sure it can be deployed run: | - wget -O cvc5 https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux - chmod u+x cvc5 - mv cvc5 /usr/local/bin + wget https://github.com/cvc5/cvc5/releases/download/cvc5-${{env.cvc5-version}}/cvc5-Linux-static.zip + unzip -j -d /usr/local/bin cvc5-Linux-static.zip cvc5-Linux-static/bin/cvc5 + rm cvc5-Linux-static.zip cvc5 --version - name: Prepare ccache uses: actions/cache@v4