From ef6c9b06cb8a65692bb0e02168fb22ff9f40cc21 Mon Sep 17 00:00:00 2001 From: Derek Bruening Date: Fri, 27 Sep 2024 11:07:32 -0400 Subject: [PATCH 1/3] i#7007: Try ssciwr/doxygen-install --- .github/workflows/ci-aarchxx-cross.yml | 308 ----------------------- .github/workflows/ci-aarchxx.yml | 124 --------- .github/workflows/ci-clang-format.yml | 112 --------- .github/workflows/ci-osx.yml | 111 -------- .github/workflows/ci-riscv64.yml | 126 ---------- .github/workflows/ci-windows.yml | 8 +- .github/workflows/ci-x86.yml | 335 ------------------------- 7 files changed, 4 insertions(+), 1120 deletions(-) delete mode 100644 .github/workflows/ci-aarchxx-cross.yml delete mode 100644 .github/workflows/ci-aarchxx.yml delete mode 100644 .github/workflows/ci-clang-format.yml delete mode 100644 .github/workflows/ci-osx.yml delete mode 100644 .github/workflows/ci-riscv64.yml delete mode 100644 .github/workflows/ci-x86.yml diff --git a/.github/workflows/ci-aarchxx-cross.yml b/.github/workflows/ci-aarchxx-cross.yml deleted file mode 100644 index 3d564d17e9b..00000000000 --- a/.github/workflows/ci-aarchxx-cross.yml +++ /dev/null @@ -1,308 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2024 Google, Inc. All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for AArchXX Continuous Integration testing. - -name: ci-aarchxx-cross -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - # Manual trigger using the Actions page. May remove when integration complete. - workflow_dispatch: - -defaults: - run: - shell: bash - -jobs: - # AArch64 cross-compile with gcc, with some tests run under QEMU. - # We use a more recent Ubuntu for a more recent QEMU. - aarch64-cross-compile: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install cross-compiler for cross-compiling Linux build. - # Unfortunately there are no libunwind or compression cross-compile - # packages so we unpack the native versions and copy their files. - - name: Create Build Environment - run: | - sudo apt-get update - sudo apt-get -y install doxygen vera++ cmake g++-aarch64-linux-gnu \ - qemu-user qemu-user-binfmt - sudo add-apt-repository 'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main' - apt download libunwind8:arm64 libunwind-dev:arm64 liblzma5:arm64 \ - zlib1g:arm64 zlib1g-dev:arm64 libsnappy1v5:arm64 libsnappy-dev:arm64 \ - liblz4-1:arm64 liblz4-dev:arm64 - mkdir ../extract - for i in *.deb; do dpkg-deb -x $i ../extract; done - for i in include lib; do sudo rsync -av ../extract/usr/${i}/aarch64-linux-gnu/ /usr/aarch64-linux-gnu/${i}/; done - sudo rsync -av ../extract/usr/include/ /usr/aarch64-linux-gnu/include/ - sudo rsync -av ../extract/lib/aarch64-linux-gnu/ /usr/aarch64-linux-gnu/lib/ - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: yes - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/aarchxx-cross-compile - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # ARM cross-compile with gcc, with some tests run under QEMU. - # We use a more recent Ubuntu for a more recent QEMU. - arm-cross-compile: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install cross-compiler for cross-compiling Linux build. - # Unfortunately there are no libunwind or compression cross-compile - # packages so we unpack the native versions and copy their files. - - name: Create Build Environment - run: | - sudo apt-get update - sudo apt-get -y install doxygen vera++ cmake g++-arm-linux-gnueabihf \ - qemu-user qemu-user-binfmt - sudo add-apt-repository 'deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main' - apt download libunwind8:armhf libunwind-dev:armhf liblzma5:armhf \ - zlib1g:armhf zlib1g-dev:armhf libsnappy1v5:armhf libsnappy-dev:armhf \ - liblz4-1:armhf liblz4-dev:armhf - mkdir ../extract - for i in *.deb; do dpkg-deb -x $i ../extract; done - for i in include lib; do sudo rsync -av ../extract/usr/${i}/arm-linux-gnueabihf/ /usr/arm-linux-gnueabihf/${i}/; done - sudo rsync -av ../extract/usr/include/ /usr/arm-linux-gnueabihf/include/ - sudo rsync -av ../extract/lib/arm-linux-gnueabihf/ /usr/arm-linux-gnueabihf/lib/ - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 32_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: yes - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/aarchxx-cross-compile - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # Android ARM cross-compile with gcc, no tests: - android-arm-cross-compile: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Fetch and install Android NDK for Andoid cross-compile build. - - name: Create Build Environment - run: | - sudo apt-get update - sudo apt-get -y install doxygen vera++ cmake - cd /tmp - wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip - unzip -q android-ndk-r10e-linux-x86_64.zip - export ANDROID_NDK_ROOT=/tmp/android-ndk-r10e - android-ndk-r10e/build/tools/make-standalone-toolchain.sh --arch=arm \ - --toolchain=arm-linux-androideabi-4.9 --platform=android-21 \ - --install-dir=/tmp/android-gcc-arm-ndk-10e - # Manually force using ld.bfd, setting CMAKE_LINKER does not work. - ln -sf ld.bfd /tmp/android-gcc-arm-ndk-10e/arm-linux-androideabi/bin/ld - ln -sf arm-linux-androideabi-ld.bfd \ - /tmp/android-gcc-arm-ndk-10e/bin/arm-linux-androideabi-ld - - - name: Run Suite - working-directory: ${{ github.workspace }} - env: - DYNAMORIO_CROSS_ANDROID_ONLY: yes - DYNAMORIO_ANDROID_TOOLCHAIN: /tmp/android-gcc-arm-ndk-10e - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - run: ./suite/runsuite_wrapper.pl automated_ci - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/android-arm-cross-compile - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # AArch64 drdecode and drmemtrace on x86: - a64-on-x86: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - - name: Create Build Environment - run: | - sudo apt-get update - sudo apt-get -y install doxygen vera++ cmake zlib1g-dev libsnappy-dev \ - liblz4-dev - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci - env: - DYNAMORIO_A64_ON_X86_ONLY: yes - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/a64-on-x86 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI diff --git a/.github/workflows/ci-aarchxx.yml b/.github/workflows/ci-aarchxx.yml deleted file mode 100644 index 831e4cd22c8..00000000000 --- a/.github/workflows/ci-aarchxx.yml +++ /dev/null @@ -1,124 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. -# Copyright (c) 2023 Arm Limited All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for aarch64 Continuous Integration testing. - -name: ci-aarchxx -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - workflow_dispatch: - -jobs: - aarch64-precommit: - strategy: - fail-fast: false - matrix: - # This job will run in parallel. - include: - - os: ubuntu-20-arm64-pre-sve - sve: false - - os: ubuntu-20-arm64-sve - sve: true - sve_length: 256 - - os: ubuntu-20-arm64-sve - sve: true - sve_length: 128 - runs-on: ${{ matrix.os }} - name: aarch64-${{matrix.sve && 'sve-' || ''}}precommit${{matrix.sve_length && '-' || ''}}${{matrix.sve_length}} - steps: - - name: Check out repository code - uses: actions/checkout@v3 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - name: Cancel previous runs - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - # We also need origin/master for pre-commit source file checks in runsuite.cmake. - # But fetching multiple branches isn't supported yet: actions/checkout#214 - # Pending PR that adds this support actions/checkout#155 - # TODO i#4549: When necessary support is available, remove/replace the - # workaround here and from every job in other Github Actions CI workflows. - - name: Fetch master - run: git fetch --no-tags --depth=1 origin master - - - name: Create build directory - run: mkdir build - - - name: Run Suite - working-directory: build - run: ../suite/runsuite_wrapper.pl travis - env: - CI_BRANCH: ${{ github.ref }} - if: ${{ matrix.sve == false || matrix.sve_length == '' }} - - - name: Run Suite with sve vector length ${{ matrix.sve_length }} - working-directory: build - run: ../tools/run_with_vector_length.py ${{ matrix.sve_length }} ../suite/runsuite_wrapper.pl travis - env: - CI_BRANCH: ${{ github.ref }} - if: ${{ matrix.sve == true && matrix.sve_length != ''}} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/x86-32 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI diff --git a/.github/workflows/ci-clang-format.yml b/.github/workflows/ci-clang-format.yml deleted file mode 100644 index 541564270b3..00000000000 --- a/.github/workflows/ci-clang-format.yml +++ /dev/null @@ -1,112 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for clang-format Continuous Integration testing. - -name: ci-clang-format -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - # Manual trigger using the Actions page. May remove when integration complete. - workflow_dispatch: - -defaults: - run: - shell: bash - -jobs: - # 64-bit Linux build with clang, no tests (runsuite.cmake disables the tests), - # install and require clang-format. - # We used to build 32-bit with clang but have decided that is not worth - # the CI resources: 64-bit hits most clang-only warnings and 64-bit - # is the primary target these days. - clang-format: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - - name: Create Build Environment - run: | - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main' - sudo apt update - sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ - liblz4-dev clang-format-14 libunwind-dev - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only require_format - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - DYNAMORIO_CLANG: yes - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/clang-format - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI diff --git a/.github/workflows/ci-osx.yml b/.github/workflows/ci-osx.yml deleted file mode 100644 index 9130f3d6f38..00000000000 --- a/.github/workflows/ci-osx.yml +++ /dev/null @@ -1,111 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for Mac OSX Continuous Integration testing. - -name: ci-osx -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - # Manual trigger using the Actions page. May remove when integration complete. - workflow_dispatch: - -defaults: - run: - shell: bash - -jobs: - # 64-bit OSX build with clang and run tests: - osx-x86-64: - runs-on: macos-12 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - - name: Create Build Environment - # XXX: We should install doxygen too but it's a different version and - # hits issues about incompatible options in the Doxyfile. - run: | - brew install nasm zlib snappy lz4 - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - # Change xcode version for current session: - # https://www.unix.com/man-page/osx/1/xcode-select/ - # https://github.community/t/selecting-an-xcode-version/16204/3 - # To find available versions, add the following as a step above: - # - run: ls -l /Applications - DEVELOPER_DIR: /Applications/Xcode_13.2.1.app/Contents/Developer - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/osx-x86-64 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI diff --git a/.github/workflows/ci-riscv64.yml b/.github/workflows/ci-riscv64.yml deleted file mode 100644 index 4773c23ead9..00000000000 --- a/.github/workflows/ci-riscv64.yml +++ /dev/null @@ -1,126 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for RISCV64 Continuous Integration testing. - -name: ci-riscv64 -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - # Manual trigger using the Actions page. May remove when integration complete. - workflow_dispatch: - -defaults: - run: - shell: bash - -jobs: - # RISCV64 cross-compile with gcc - # We use ubuntu 24.04 because the compilition here need libunwind-riscv64 and - # it's a stable source. - riscv64-cross-compile: - runs-on: ubuntu-24.04 - - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install cross-compiler for cross-compiling Linux build. - # Unfortunately there are no libunwind or compression cross-compile - # packages so we unpack the native versions and copy their files. - - name: Create Build Environment - run: | - sudo apt-get update - sudo apt-get -y install doxygen vera++ cmake crossbuild-essential-riscv64 git \ - qemu-user qemu-user-binfmt - # We cannot use the following command here, because it will download the - # x86_64 binaries due to some known issue of DEB822. - # sudo add-apt-repository 'deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports noble main' - echo 'deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports noble main' | sudo tee -a /etc/apt/sources.list - sudo apt-get update - apt download libunwind8:riscv64 libunwind-dev:riscv64 liblzma5:riscv64 \ - zlib1g:riscv64 zlib1g-dev:riscv64 libsnappy1v5:riscv64 libsnappy-dev:riscv64 \ - liblz4-1:riscv64 liblz4-dev:riscv64 - mkdir ../extract - for i in *.deb; do dpkg-deb -x $i ../extract; done - for i in include lib; do sudo rsync -av ../extract/usr/${i}/riscv64-linux-gnu/ /usr/riscv64-linux-gnu/${i}/; done - sudo rsync -av ../extract/usr/include/ /usr/riscv64-linux-gnu/include/ - if test -e "../extract/lib/riscv64-linux-gnu/"; then \ - sudo rsync -av ../extract/lib/riscv64-linux-gnu/ /usr/riscv64-linux-gnu/lib/; \ - fi - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only - env: - DYNAMORIO_CROSS_RISCV64_LINUX_ONLY: yes - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - QEMU_LD_PREFIX: /usr/riscv64-linux-gnu/ - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/aarchxx-cross-compile - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index d630e68bc61..cc1fc928bf2 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -1,5 +1,5 @@ # ********************************************************** -# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# Copyright (c) 2020-2024 Google, Inc. All rights reserved. # ********************************************************** # Redistribution and use in source and binary forms, with or without @@ -70,12 +70,14 @@ jobs: - name: Fetch Sources run: git fetch --no-tags --depth=1 origin master + # Install Doxygen. + - uses: ssciwr/doxygen-install@v1 + - name: Download Packages shell: powershell run: | md c:\projects\install (New-Object System.Net.WebClient).DownloadFile("https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip", "c:\projects\install\ninja.zip") - (New-Object System.Net.WebClient).DownloadFile("https://sourceforge.net/projects/doxygen/files/rel-1.8.19/doxygen-1.8.19.windows.x64.bin.zip", "c:\projects\install\doxygen.zip") - name: Run Suite working-directory: ${{ github.workspace }} @@ -83,8 +85,6 @@ jobs: echo ------ Setting up paths ------ 7z x c:\projects\install\ninja.zip -oc:\projects\install\ninja > nul set PATH=c:\projects\install\ninja;%PATH% - 7z x c:\projects\install\doxygen.zip -oc:\projects\install\doxygen > nul - set PATH=c:\projects\install\doxygen;%PATH% call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat" echo ------ Running suite ------ echo PATH is "%PATH%" diff --git a/.github/workflows/ci-x86.yml b/.github/workflows/ci-x86.yml deleted file mode 100644 index e62a3f0e676..00000000000 --- a/.github/workflows/ci-x86.yml +++ /dev/null @@ -1,335 +0,0 @@ -# ********************************************************** -# Copyright (c) 2020-2024 Google, Inc. All rights reserved. -# ********************************************************** - -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# * Neither the name of Google, Inc. nor the names of its contributors may be -# used to endorse or promote products derived from this software without -# specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGE. - -# Github Actions workflow for x86 Continuous Integration testing. - -name: ci-x86 -on: - # Run on pushes to master and on pull request changes, including from a - # forked repo with no "push" trigger, while avoiding duplicate triggers. - push: - branches: - - master - pull_request: - types: [opened, reopened, synchronize] - merge_group: - - # Manual trigger using the Actions page. May remove when integration complete. - workflow_dispatch: - -defaults: - run: - shell: bash - # We'd like to add common initial steps for all jobs, but that's not supported. - # Composite Run Steps can help, but we don't have that many common steps -- just - # checkout and fetch for now. - # https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/about-actions#composite-run-steps-actions - # https://github.community/t/reusing-sharing-inheriting-steps-between-jobs-declarations - -jobs: - # 32-bit Linux build with gcc and run tests: - x86-32: - runs-on: ubuntu-20.04 - - # When checking out the repository that triggered a workflow, actions/checkout@v2 - # defaults to the reference or SHA for that event. See documentation for ref at - # https://github.com/actions/checkout - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - # We also need origin/master for pre-commit source file checks in runsuite.cmake. - # But fetching multiple branches isn't supported yet: actions/checkout#214 - # Pending PR that adds this support actions/checkout#155 - # TODO i#4549: When necessary support is available, remove/replace the - # workaround here and from every job in other Github Actions CI workflows. - - run: git fetch --no-tags --depth=1 origin master - - # Install multilib for non-cross-compiling Linux build. - # GA CI uses packages.microsoft.com which is missing i386 packages, and - # attempts at using apt with us.archive-ubuntu.com hit dep issues: - # so we manually install the i386 packages we need. - - name: Create Build Environment - run: | - sudo apt update - sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ - liblz4-dev g++-multilib libunwind-dev - sudo add-apt-repository 'deb [arch=i386] http://us.archive.ubuntu.com/ubuntu focal main' - apt download libunwind8:i386 libunwind-dev:i386 liblzma5:i386 \ - zlib1g:i386 zlib1g-dev:i386 - mkdir ../extract - for i in *.deb; do dpkg-deb -x $i ../extract; done - sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ - sudo rsync -av ../extract/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ - sudo rsync -av ../extract/usr/include/i386-linux-gnu/ /usr/include/ - echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope - - # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 - with: - cmake-version: '3.19.7' - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 32_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/x86-32 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # 64-bit Linux build with gcc and run tests. - x86-64: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install multilib for non-cross-compiling Linux build. - - name: Create Build Environment - run: | - sudo apt update - sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ - liblz4-dev g++-multilib libunwind-dev - echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope - - # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 - with: - cmake-version: '3.19.7' - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/x86-64 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # Ubuntu22 64-bit Linux build with gcc and run tests. - # XXX: A matrix could combine this with the 20.04 but our auto-cancel - # step cancels the 2nd job so we need to solve that first. - x86-64-ubuntu22: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install multilib for non-cross-compiling Linux build. - - name: Create Build Environment - run: | - sudo apt update - sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ - liblz4-dev g++-multilib libunwind-dev - echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope - - # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 - with: - cmake-version: '3.19.7' - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 64_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/x86-64-ubuntu22 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI - - # Ubuntu22 64-bit Linux build with gcc and run tests. - # XXX: A matrix could combine this with the 20.04 but our auto-cancel - # step cancels the 2nd job so we need to solve that first. - x86-32-ubuntu22: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - # Cancel any prior runs for a PR (but do not cancel master branch runs). - - uses: n1hility/cancel-previous-runs@v2 - with: - token: ${{ secrets.GITHUB_TOKEN }} - if: ${{ github.event_name == 'pull_request' }} - - - run: git fetch --no-tags --depth=1 origin master - - # Install multilib for non-cross-compiling Linux build. - - name: Create Build Environment - run: | - sudo apt update - sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ - liblz4-dev g++-multilib libunwind-dev - sudo add-apt-repository 'deb [arch=i386] http://us.archive.ubuntu.com/ubuntu focal main' - apt download libunwind8:i386 libunwind-dev:i386 liblzma5:i386 \ - zlib1g:i386 zlib1g-dev:i386 - mkdir ../extract - for i in *.deb; do dpkg-deb -x $i ../extract; done - sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ - sudo rsync -av ../extract/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ - sudo rsync -av ../extract/usr/include/i386-linux-gnu/ /usr/include/ - echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope - - # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 - with: - cmake-version: '3.19.7' - - - name: Run Suite - working-directory: ${{ github.workspace }} - run: ./suite/runsuite_wrapper.pl automated_ci 32_only - env: - DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no - CI_TRIGGER: ${{ github.event_name }} - CI_BRANCH: ${{ github.ref }} - - - name: Send failure mail to dynamorio-devs - if: failure() && github.ref == 'refs/heads/master' - uses: dawidd6/action-send-mail@v2 - with: - server_address: smtp.gmail.com - server_port: 465 - username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} - password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} - subject: | - [${{github.repository}}] ${{github.workflow}} FAILED - on ${{github.event_name}} at ${{github.ref}} - body: | - Github Actions CI workflow run FAILED! - Workflow: ${{github.workflow}}/x86-32-ubuntu22 - Repository: ${{github.repository}} - Branch ref: ${{github.ref}} - SHA: ${{github.sha}} - Triggering actor: ${{github.actor}} - Triggering event: ${{github.event_name}} - Run Id: ${{github.run_id}} - See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} - to: dynamorio-devs@googlegroups.com - from: Github Action CI From ddaa85d5217a19212a29e029a5bce13b01faabb9 Mon Sep 17 00:00:00 2001 From: Derek Bruening Date: Fri, 27 Sep 2024 11:25:41 -0400 Subject: [PATCH 2/3] Use ssciwr/doxygen-install everywhere --- .github/workflows/ci-aarchxx-cross.yml | 308 +++++++++++++++++++++++ .github/workflows/ci-aarchxx.yml | 124 +++++++++ .github/workflows/ci-clang-format.yml | 112 +++++++++ .github/workflows/ci-osx.yml | 111 ++++++++ .github/workflows/ci-package.yml | 6 +- .github/workflows/ci-riscv64.yml | 126 ++++++++++ .github/workflows/ci-windows.yml | 12 +- .github/workflows/ci-x86.yml | 335 +++++++++++++++++++++++++ 8 files changed, 1125 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/ci-aarchxx-cross.yml create mode 100644 .github/workflows/ci-aarchxx.yml create mode 100644 .github/workflows/ci-clang-format.yml create mode 100644 .github/workflows/ci-osx.yml create mode 100644 .github/workflows/ci-riscv64.yml create mode 100644 .github/workflows/ci-x86.yml diff --git a/.github/workflows/ci-aarchxx-cross.yml b/.github/workflows/ci-aarchxx-cross.yml new file mode 100644 index 00000000000..3d564d17e9b --- /dev/null +++ b/.github/workflows/ci-aarchxx-cross.yml @@ -0,0 +1,308 @@ +# ********************************************************** +# Copyright (c) 2020-2024 Google, Inc. All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for AArchXX Continuous Integration testing. + +name: ci-aarchxx-cross +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + # Manual trigger using the Actions page. May remove when integration complete. + workflow_dispatch: + +defaults: + run: + shell: bash + +jobs: + # AArch64 cross-compile with gcc, with some tests run under QEMU. + # We use a more recent Ubuntu for a more recent QEMU. + aarch64-cross-compile: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install cross-compiler for cross-compiling Linux build. + # Unfortunately there are no libunwind or compression cross-compile + # packages so we unpack the native versions and copy their files. + - name: Create Build Environment + run: | + sudo apt-get update + sudo apt-get -y install doxygen vera++ cmake g++-aarch64-linux-gnu \ + qemu-user qemu-user-binfmt + sudo add-apt-repository 'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal main' + apt download libunwind8:arm64 libunwind-dev:arm64 liblzma5:arm64 \ + zlib1g:arm64 zlib1g-dev:arm64 libsnappy1v5:arm64 libsnappy-dev:arm64 \ + liblz4-1:arm64 liblz4-dev:arm64 + mkdir ../extract + for i in *.deb; do dpkg-deb -x $i ../extract; done + for i in include lib; do sudo rsync -av ../extract/usr/${i}/aarch64-linux-gnu/ /usr/aarch64-linux-gnu/${i}/; done + sudo rsync -av ../extract/usr/include/ /usr/aarch64-linux-gnu/include/ + sudo rsync -av ../extract/lib/aarch64-linux-gnu/ /usr/aarch64-linux-gnu/lib/ + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: yes + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/aarchxx-cross-compile + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # ARM cross-compile with gcc, with some tests run under QEMU. + # We use a more recent Ubuntu for a more recent QEMU. + arm-cross-compile: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install cross-compiler for cross-compiling Linux build. + # Unfortunately there are no libunwind or compression cross-compile + # packages so we unpack the native versions and copy their files. + - name: Create Build Environment + run: | + sudo apt-get update + sudo apt-get -y install doxygen vera++ cmake g++-arm-linux-gnueabihf \ + qemu-user qemu-user-binfmt + sudo add-apt-repository 'deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal main' + apt download libunwind8:armhf libunwind-dev:armhf liblzma5:armhf \ + zlib1g:armhf zlib1g-dev:armhf libsnappy1v5:armhf libsnappy-dev:armhf \ + liblz4-1:armhf liblz4-dev:armhf + mkdir ../extract + for i in *.deb; do dpkg-deb -x $i ../extract; done + for i in include lib; do sudo rsync -av ../extract/usr/${i}/arm-linux-gnueabihf/ /usr/arm-linux-gnueabihf/${i}/; done + sudo rsync -av ../extract/usr/include/ /usr/arm-linux-gnueabihf/include/ + sudo rsync -av ../extract/lib/arm-linux-gnueabihf/ /usr/arm-linux-gnueabihf/lib/ + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 32_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: yes + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/aarchxx-cross-compile + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # Android ARM cross-compile with gcc, no tests: + android-arm-cross-compile: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Fetch and install Android NDK for Andoid cross-compile build. + - name: Create Build Environment + run: | + sudo apt-get update + sudo apt-get -y install doxygen vera++ cmake + cd /tmp + wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip + unzip -q android-ndk-r10e-linux-x86_64.zip + export ANDROID_NDK_ROOT=/tmp/android-ndk-r10e + android-ndk-r10e/build/tools/make-standalone-toolchain.sh --arch=arm \ + --toolchain=arm-linux-androideabi-4.9 --platform=android-21 \ + --install-dir=/tmp/android-gcc-arm-ndk-10e + # Manually force using ld.bfd, setting CMAKE_LINKER does not work. + ln -sf ld.bfd /tmp/android-gcc-arm-ndk-10e/arm-linux-androideabi/bin/ld + ln -sf arm-linux-androideabi-ld.bfd \ + /tmp/android-gcc-arm-ndk-10e/bin/arm-linux-androideabi-ld + + - name: Run Suite + working-directory: ${{ github.workspace }} + env: + DYNAMORIO_CROSS_ANDROID_ONLY: yes + DYNAMORIO_ANDROID_TOOLCHAIN: /tmp/android-gcc-arm-ndk-10e + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + run: ./suite/runsuite_wrapper.pl automated_ci + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/android-arm-cross-compile + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # AArch64 drdecode and drmemtrace on x86: + a64-on-x86: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + - name: Create Build Environment + run: | + sudo apt-get update + sudo apt-get -y install doxygen vera++ cmake zlib1g-dev libsnappy-dev \ + liblz4-dev + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci + env: + DYNAMORIO_A64_ON_X86_ONLY: yes + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/a64-on-x86 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI diff --git a/.github/workflows/ci-aarchxx.yml b/.github/workflows/ci-aarchxx.yml new file mode 100644 index 00000000000..831e4cd22c8 --- /dev/null +++ b/.github/workflows/ci-aarchxx.yml @@ -0,0 +1,124 @@ +# ********************************************************** +# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# Copyright (c) 2023 Arm Limited All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for aarch64 Continuous Integration testing. + +name: ci-aarchxx +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + workflow_dispatch: + +jobs: + aarch64-precommit: + strategy: + fail-fast: false + matrix: + # This job will run in parallel. + include: + - os: ubuntu-20-arm64-pre-sve + sve: false + - os: ubuntu-20-arm64-sve + sve: true + sve_length: 256 + - os: ubuntu-20-arm64-sve + sve: true + sve_length: 128 + runs-on: ${{ matrix.os }} + name: aarch64-${{matrix.sve && 'sve-' || ''}}precommit${{matrix.sve_length && '-' || ''}}${{matrix.sve_length}} + steps: + - name: Check out repository code + uses: actions/checkout@v3 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - name: Cancel previous runs + uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + # We also need origin/master for pre-commit source file checks in runsuite.cmake. + # But fetching multiple branches isn't supported yet: actions/checkout#214 + # Pending PR that adds this support actions/checkout#155 + # TODO i#4549: When necessary support is available, remove/replace the + # workaround here and from every job in other Github Actions CI workflows. + - name: Fetch master + run: git fetch --no-tags --depth=1 origin master + + - name: Create build directory + run: mkdir build + + - name: Run Suite + working-directory: build + run: ../suite/runsuite_wrapper.pl travis + env: + CI_BRANCH: ${{ github.ref }} + if: ${{ matrix.sve == false || matrix.sve_length == '' }} + + - name: Run Suite with sve vector length ${{ matrix.sve_length }} + working-directory: build + run: ../tools/run_with_vector_length.py ${{ matrix.sve_length }} ../suite/runsuite_wrapper.pl travis + env: + CI_BRANCH: ${{ github.ref }} + if: ${{ matrix.sve == true && matrix.sve_length != ''}} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/x86-32 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI diff --git a/.github/workflows/ci-clang-format.yml b/.github/workflows/ci-clang-format.yml new file mode 100644 index 00000000000..541564270b3 --- /dev/null +++ b/.github/workflows/ci-clang-format.yml @@ -0,0 +1,112 @@ +# ********************************************************** +# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for clang-format Continuous Integration testing. + +name: ci-clang-format +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + # Manual trigger using the Actions page. May remove when integration complete. + workflow_dispatch: + +defaults: + run: + shell: bash + +jobs: + # 64-bit Linux build with clang, no tests (runsuite.cmake disables the tests), + # install and require clang-format. + # We used to build 32-bit with clang but have decided that is not worth + # the CI resources: 64-bit hits most clang-only warnings and 64-bit + # is the primary target these days. + clang-format: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + - name: Create Build Environment + run: | + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main' + sudo apt update + sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ + liblz4-dev clang-format-14 libunwind-dev + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only require_format + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + DYNAMORIO_CLANG: yes + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/clang-format + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI diff --git a/.github/workflows/ci-osx.yml b/.github/workflows/ci-osx.yml new file mode 100644 index 00000000000..9130f3d6f38 --- /dev/null +++ b/.github/workflows/ci-osx.yml @@ -0,0 +1,111 @@ +# ********************************************************** +# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for Mac OSX Continuous Integration testing. + +name: ci-osx +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + # Manual trigger using the Actions page. May remove when integration complete. + workflow_dispatch: + +defaults: + run: + shell: bash + +jobs: + # 64-bit OSX build with clang and run tests: + osx-x86-64: + runs-on: macos-12 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + - name: Create Build Environment + # XXX: We should install doxygen too but it's a different version and + # hits issues about incompatible options in the Doxyfile. + run: | + brew install nasm zlib snappy lz4 + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + # Change xcode version for current session: + # https://www.unix.com/man-page/osx/1/xcode-select/ + # https://github.community/t/selecting-an-xcode-version/16204/3 + # To find available versions, add the following as a step above: + # - run: ls -l /Applications + DEVELOPER_DIR: /Applications/Xcode_13.2.1.app/Contents/Developer + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/osx-x86-64 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI diff --git a/.github/workflows/ci-package.yml b/.github/workflows/ci-package.yml index 8652bb3f028..4a3de51809f 100644 --- a/.github/workflows/ci-package.yml +++ b/.github/workflows/ci-package.yml @@ -443,12 +443,14 @@ jobs: git clone --depth=2 https://github.com/DynamoRIO/drmemory.git drmemory cd drmemory && git submodule update --init --recursive --depth 250 && cd .. + # Install Doxygen. + - uses: ssciwr/doxygen-install@v1 + - name: Download Packages shell: powershell run: | md c:\projects\install (New-Object System.Net.WebClient).DownloadFile("https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip", "c:\projects\install\ninja.zip") - (New-Object System.Net.WebClient).DownloadFile("https://sourceforge.net/projects/doxygen/files/rel-1.8.19/doxygen-1.8.19.windows.x64.bin.zip", "c:\projects\install\doxygen.zip") - name: Get Version id: version @@ -472,8 +474,6 @@ jobs: echo ------ Setting up paths ------ 7z x c:\projects\install\ninja.zip -oc:\projects\install\ninja > nul set PATH=c:\projects\install\ninja;%PATH% - 7z x c:\projects\install\doxygen.zip -oc:\projects\install\doxygen > nul - set PATH=c:\projects\install\doxygen;%PATH% dir "c:\Program Files (x86)\WiX Toolset"* set PATH=C:\Program Files (x86)\WiX Toolset v3.14\bin;%PATH% call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat" diff --git a/.github/workflows/ci-riscv64.yml b/.github/workflows/ci-riscv64.yml new file mode 100644 index 00000000000..4773c23ead9 --- /dev/null +++ b/.github/workflows/ci-riscv64.yml @@ -0,0 +1,126 @@ +# ********************************************************** +# Copyright (c) 2020-2023 Google, Inc. All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for RISCV64 Continuous Integration testing. + +name: ci-riscv64 +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + # Manual trigger using the Actions page. May remove when integration complete. + workflow_dispatch: + +defaults: + run: + shell: bash + +jobs: + # RISCV64 cross-compile with gcc + # We use ubuntu 24.04 because the compilition here need libunwind-riscv64 and + # it's a stable source. + riscv64-cross-compile: + runs-on: ubuntu-24.04 + + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install cross-compiler for cross-compiling Linux build. + # Unfortunately there are no libunwind or compression cross-compile + # packages so we unpack the native versions and copy their files. + - name: Create Build Environment + run: | + sudo apt-get update + sudo apt-get -y install doxygen vera++ cmake crossbuild-essential-riscv64 git \ + qemu-user qemu-user-binfmt + # We cannot use the following command here, because it will download the + # x86_64 binaries due to some known issue of DEB822. + # sudo add-apt-repository 'deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports noble main' + echo 'deb [arch=riscv64] http://ports.ubuntu.com/ubuntu-ports noble main' | sudo tee -a /etc/apt/sources.list + sudo apt-get update + apt download libunwind8:riscv64 libunwind-dev:riscv64 liblzma5:riscv64 \ + zlib1g:riscv64 zlib1g-dev:riscv64 libsnappy1v5:riscv64 libsnappy-dev:riscv64 \ + liblz4-1:riscv64 liblz4-dev:riscv64 + mkdir ../extract + for i in *.deb; do dpkg-deb -x $i ../extract; done + for i in include lib; do sudo rsync -av ../extract/usr/${i}/riscv64-linux-gnu/ /usr/riscv64-linux-gnu/${i}/; done + sudo rsync -av ../extract/usr/include/ /usr/riscv64-linux-gnu/include/ + if test -e "../extract/lib/riscv64-linux-gnu/"; then \ + sudo rsync -av ../extract/lib/riscv64-linux-gnu/ /usr/riscv64-linux-gnu/lib/; \ + fi + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only + env: + DYNAMORIO_CROSS_RISCV64_LINUX_ONLY: yes + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + QEMU_LD_PREFIX: /usr/riscv64-linux-gnu/ + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/aarchxx-cross-compile + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index cc1fc928bf2..5fe0091e19b 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -137,12 +137,14 @@ jobs: - name: Fetch Sources run: git fetch --no-tags --depth=1 origin master + # Install Doxygen. + - uses: ssciwr/doxygen-install@v1 + - name: Download Packages shell: powershell run: | md c:\projects\install (New-Object System.Net.WebClient).DownloadFile("https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip", "c:\projects\install\ninja.zip") - (New-Object System.Net.WebClient).DownloadFile("https://sourceforge.net/projects/doxygen/files/rel-1.8.19/doxygen-1.8.19.windows.x64.bin.zip", "c:\projects\install\doxygen.zip") - name: Run Suite working-directory: ${{ github.workspace }} @@ -150,8 +152,6 @@ jobs: echo ------ Setting up paths ------ 7z x c:\projects\install\ninja.zip -oc:\projects\install\ninja > nul set PATH=c:\projects\install\ninja;%PATH% - 7z x c:\projects\install\doxygen.zip -oc:\projects\install\doxygen > nul - set PATH=c:\projects\install\doxygen;%PATH% call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat" echo ------ Running suite ------ echo PATH is "%PATH%" @@ -204,12 +204,14 @@ jobs: - name: Fetch Sources run: git fetch --no-tags --depth=1 origin master + # Install Doxygen. + - uses: ssciwr/doxygen-install@v1 + - name: Download Packages shell: powershell run: | md c:\projects\install (New-Object System.Net.WebClient).DownloadFile("https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip", "c:\projects\install\ninja.zip") - (New-Object System.Net.WebClient).DownloadFile("https://sourceforge.net/projects/doxygen/files/rel-1.8.19/doxygen-1.8.19.windows.x64.bin.zip", "c:\projects\install\doxygen.zip") - name: Run Suite working-directory: ${{ github.workspace }} @@ -217,8 +219,6 @@ jobs: echo ------ Setting up paths ------ 7z x c:\projects\install\ninja.zip -oc:\projects\install\ninja > nul set PATH=c:\projects\install\ninja;%PATH% - 7z x c:\projects\install\doxygen.zip -oc:\projects\install\doxygen > nul - set PATH=c:\projects\install\doxygen;%PATH% call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/Auxiliary/Build/vcvars32.bat" echo ------ Running suite ------ echo PATH is "%PATH%" diff --git a/.github/workflows/ci-x86.yml b/.github/workflows/ci-x86.yml new file mode 100644 index 00000000000..e62a3f0e676 --- /dev/null +++ b/.github/workflows/ci-x86.yml @@ -0,0 +1,335 @@ +# ********************************************************** +# Copyright (c) 2020-2024 Google, Inc. All rights reserved. +# ********************************************************** + +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# * Neither the name of Google, Inc. nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. + +# Github Actions workflow for x86 Continuous Integration testing. + +name: ci-x86 +on: + # Run on pushes to master and on pull request changes, including from a + # forked repo with no "push" trigger, while avoiding duplicate triggers. + push: + branches: + - master + pull_request: + types: [opened, reopened, synchronize] + merge_group: + + # Manual trigger using the Actions page. May remove when integration complete. + workflow_dispatch: + +defaults: + run: + shell: bash + # We'd like to add common initial steps for all jobs, but that's not supported. + # Composite Run Steps can help, but we don't have that many common steps -- just + # checkout and fetch for now. + # https://docs.github.com/en/free-pro-team@latest/actions/creating-actions/about-actions#composite-run-steps-actions + # https://github.community/t/reusing-sharing-inheriting-steps-between-jobs-declarations + +jobs: + # 32-bit Linux build with gcc and run tests: + x86-32: + runs-on: ubuntu-20.04 + + # When checking out the repository that triggered a workflow, actions/checkout@v2 + # defaults to the reference or SHA for that event. See documentation for ref at + # https://github.com/actions/checkout + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + # We also need origin/master for pre-commit source file checks in runsuite.cmake. + # But fetching multiple branches isn't supported yet: actions/checkout#214 + # Pending PR that adds this support actions/checkout#155 + # TODO i#4549: When necessary support is available, remove/replace the + # workaround here and from every job in other Github Actions CI workflows. + - run: git fetch --no-tags --depth=1 origin master + + # Install multilib for non-cross-compiling Linux build. + # GA CI uses packages.microsoft.com which is missing i386 packages, and + # attempts at using apt with us.archive-ubuntu.com hit dep issues: + # so we manually install the i386 packages we need. + - name: Create Build Environment + run: | + sudo apt update + sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ + liblz4-dev g++-multilib libunwind-dev + sudo add-apt-repository 'deb [arch=i386] http://us.archive.ubuntu.com/ubuntu focal main' + apt download libunwind8:i386 libunwind-dev:i386 liblzma5:i386 \ + zlib1g:i386 zlib1g-dev:i386 + mkdir ../extract + for i in *.deb; do dpkg-deb -x $i ../extract; done + sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ + sudo rsync -av ../extract/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ + sudo rsync -av ../extract/usr/include/i386-linux-gnu/ /usr/include/ + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + + # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). + - name: Setup newer cmake + uses: jwlawson/actions-setup-cmake@v1.8 + with: + cmake-version: '3.19.7' + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 32_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/x86-32 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # 64-bit Linux build with gcc and run tests. + x86-64: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install multilib for non-cross-compiling Linux build. + - name: Create Build Environment + run: | + sudo apt update + sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ + liblz4-dev g++-multilib libunwind-dev + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + + # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). + - name: Setup newer cmake + uses: jwlawson/actions-setup-cmake@v1.8 + with: + cmake-version: '3.19.7' + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/x86-64 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # Ubuntu22 64-bit Linux build with gcc and run tests. + # XXX: A matrix could combine this with the 20.04 but our auto-cancel + # step cancels the 2nd job so we need to solve that first. + x86-64-ubuntu22: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install multilib for non-cross-compiling Linux build. + - name: Create Build Environment + run: | + sudo apt update + sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ + liblz4-dev g++-multilib libunwind-dev + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + + # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). + - name: Setup newer cmake + uses: jwlawson/actions-setup-cmake@v1.8 + with: + cmake-version: '3.19.7' + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 64_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/x86-64-ubuntu22 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI + + # Ubuntu22 64-bit Linux build with gcc and run tests. + # XXX: A matrix could combine this with the 20.04 but our auto-cancel + # step cancels the 2nd job so we need to solve that first. + x86-32-ubuntu22: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + + # Cancel any prior runs for a PR (but do not cancel master branch runs). + - uses: n1hility/cancel-previous-runs@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + if: ${{ github.event_name == 'pull_request' }} + + - run: git fetch --no-tags --depth=1 origin master + + # Install multilib for non-cross-compiling Linux build. + - name: Create Build Environment + run: | + sudo apt update + sudo apt-get -y install doxygen vera++ zlib1g-dev libsnappy-dev \ + liblz4-dev g++-multilib libunwind-dev + sudo add-apt-repository 'deb [arch=i386] http://us.archive.ubuntu.com/ubuntu focal main' + apt download libunwind8:i386 libunwind-dev:i386 liblzma5:i386 \ + zlib1g:i386 zlib1g-dev:i386 + mkdir ../extract + for i in *.deb; do dpkg-deb -x $i ../extract; done + sudo rsync -av ../extract/usr/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ + sudo rsync -av ../extract/lib/i386-linux-gnu/ /usr/lib/i386-linux-gnu/ + sudo rsync -av ../extract/usr/include/i386-linux-gnu/ /usr/include/ + echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope + + # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). + - name: Setup newer cmake + uses: jwlawson/actions-setup-cmake@v1.8 + with: + cmake-version: '3.19.7' + + - name: Run Suite + working-directory: ${{ github.workspace }} + run: ./suite/runsuite_wrapper.pl automated_ci 32_only + env: + DYNAMORIO_CROSS_AARCHXX_LINUX_ONLY: no + CI_TRIGGER: ${{ github.event_name }} + CI_BRANCH: ${{ github.ref }} + + - name: Send failure mail to dynamorio-devs + if: failure() && github.ref == 'refs/heads/master' + uses: dawidd6/action-send-mail@v2 + with: + server_address: smtp.gmail.com + server_port: 465 + username: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_USERNAME}} + password: ${{secrets.DYNAMORIO_NOTIFICATION_EMAIL_PASSWORD}} + subject: | + [${{github.repository}}] ${{github.workflow}} FAILED + on ${{github.event_name}} at ${{github.ref}} + body: | + Github Actions CI workflow run FAILED! + Workflow: ${{github.workflow}}/x86-32-ubuntu22 + Repository: ${{github.repository}} + Branch ref: ${{github.ref}} + SHA: ${{github.sha}} + Triggering actor: ${{github.actor}} + Triggering event: ${{github.event_name}} + Run Id: ${{github.run_id}} + See more details on github.com/DynamoRIO/dynamorio/actions/runs/${{github.run_id}} + to: dynamorio-devs@googlegroups.com + from: Github Action CI From 8ef5fadb7c1fe43e89b6abe8a96dc52770fcd8a5 Mon Sep 17 00:00:00 2001 From: Derek Bruening Date: Fri, 27 Sep 2024 11:51:58 -0400 Subject: [PATCH 3/3] Try upgrading jwlawson/actions-setup-cmake from v1.8 to v2 --- .github/workflows/ci-package.yml | 2 +- .github/workflows/ci-x86.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-package.yml b/.github/workflows/ci-package.yml index 4a3de51809f..62ca328a2b9 100644 --- a/.github/workflows/ci-package.yml +++ b/.github/workflows/ci-package.yml @@ -91,7 +91,7 @@ jobs: # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 + uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.19.7' diff --git a/.github/workflows/ci-x86.yml b/.github/workflows/ci-x86.yml index e62a3f0e676..1b4a7de4638 100644 --- a/.github/workflows/ci-x86.yml +++ b/.github/workflows/ci-x86.yml @@ -100,7 +100,7 @@ jobs: # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 + uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.19.7' @@ -162,7 +162,7 @@ jobs: # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 + uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.19.7' @@ -226,7 +226,7 @@ jobs: # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 + uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.19.7' @@ -298,7 +298,7 @@ jobs: # Use a newer cmake to avoid 32-bit toolchain problems (i#4830). - name: Setup newer cmake - uses: jwlawson/actions-setup-cmake@v1.8 + uses: jwlawson/actions-setup-cmake@v2 with: cmake-version: '3.19.7'