From 3589a3b5659b3b9c87a5ea00ef11deb32d2698f1 Mon Sep 17 00:00:00 2001 From: Pat Date: Thu, 19 Dec 2024 15:37:20 +0000 Subject: [PATCH] workflows: update build and packaging to fix (#64) * workflows: update build and packaging to fix Signed-off-by: Patrick Stephens * ci: add codeowners Signed-off-by: Patrick Stephens * workflows: fix centos 7 checkout Signed-off-by: Patrick Stephens --------- Signed-off-by: Patrick Stephens --- .github/workflows/build.yaml | 58 ++++++++++++++++++++++++++++++++- .github/workflows/packages.yaml | 32 ++++++++++++++++-- CODEOWNERS | 7 ++++ 3 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 CODEOWNERS diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5780287..9927eb6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -52,6 +52,14 @@ jobs: git clone --recursive https://github.com/calyptia/ctraces.git shell: bash + - name: Check out the branch (1.8.3 version of Git) + env: + BRANCH_NAME: ${{ github.head_ref }} + run: | + git checkout "$BRANCH_NAME" + shell: bash + working-directory: ctraces + - name: Run compilation run: | cmake3 -DCTR_TESTS=on -DCTR_DEV=on . @@ -59,6 +67,28 @@ jobs: shell: bash working-directory: ctraces + build-debian: + name: Debian Buster build to confirm no issues once used downstream + runs-on: ubuntu-latest + container: debian:buster + steps: + - name: Set up base image dependencies + run: | + apt-get update + apt-get install -y build-essential cmake make git + shell: bash + + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Run compilation + run: | + cmake -DCTR_TESTS=On . + make all + CTEST_OUTPUT_ON_FAILURE=1 make test + shell: bash + build-unix-arm64: name: Build sources on arm64 for ${{ matrix.os }} - ${{ matrix.compiler }} runs-on: ${{ matrix.os }} @@ -78,7 +108,7 @@ jobs: uses: uraimo/run-on-arch-action@v2.8.1 with: arch: aarch64 - distro: ubuntu20.04 + distro: ubuntu_latest run: | apt-get update && \ apt-get install -y --no-install-recommends \ @@ -144,3 +174,29 @@ jobs: # dependencies_debian: '' cmakeflags: '-DCTR_TESTS=On -DCMT_DEV=on .' build_command: make all + + # this job provides the single required status for PRs to be merged into main. + # instead of updating the protected branch status in github, developers can update the needs section below + # to require additional status checks to protect main. + # the job uses the alls-green action to get around the github issue that treats a "skipped" required status check + # as passed. github will skip a job if an upstream needed job fails, which would defeat the purpose of this required + # status check. + test-required-checks-complete: + # note: this step always has to run in order to check if the dependent jobs passed. by default github skips running a job + # if the needed jobs upstream failed. + if: always() + needs: + - build-windows + - build-centos + - build-debian + - build-unix-arm64 + - build-unix-amd64 + - build-analysis-tests + name: Required checks complete + runs-on: ubuntu-latest + permissions: {} + steps: + - name: Decide whether the needed jobs succeeded or failed + uses: re-actors/alls-green@release/v1 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/packages.yaml b/.github/workflows/packages.yaml index b520e54..78d4017 100644 --- a/.github/workflows/packages.yaml +++ b/.github/workflows/packages.yaml @@ -26,7 +26,7 @@ jobs: name: Build the ${{matrix.format}} packages with: arch: aarch64 - distro: ubuntu20.04 + distro: ubuntu_latest run: | apt-get update && \ apt-get install -y --no-install-recommends \ @@ -34,7 +34,7 @@ jobs: cmake \ file \ rpm \ - make + make cmake . echo ${{ matrix.format }} | awk '{print toupper($0)}' | xargs -I{} cpack -G {} @@ -69,11 +69,39 @@ jobs: path: | ./*.${{matrix.format}} + build-macos-packages-arm64: + name: build macOS Apple Silicon packages + strategy: + fail-fast: true + matrix: + config: + - format: productbuild + arch: apple + ext: pkg + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Build the ${{matrix.config.format}} packages + run: | + cmake . -DCPACK_GENERATOR=${{ matrix.config.format }} + echo ${{ matrix.config.format }} | xargs -I{} cpack -G {} + + - name: Store the master package artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.config.format }}-${{matrix.config.arch}} + path: | + ./*-${{matrix.config.arch}}.${{matrix.config.ext}} + release: name: Create release and upload packages needs: - build-distro-packages-amd64 - build-distro-packages-arm64 + - build-macos-packages-arm64 runs-on: ubuntu-latest permissions: contents: write diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..2c2d84e --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,7 @@ +# Global Owners +# ------------- +* @edsiper @leonardo-albertovich + +# CI +# ------------------------- +/.github/ @niedbalski @patrick-stephens @celalettin1286