diff options
| author | Czarek Nakamoto <cyjan@mrcyjanek.net> | 2025-07-10 15:22:07 +0200 |
|---|---|---|
| committer | Czarek Nakamoto <cyjan@mrcyjanek.net> | 2025-07-10 15:22:07 +0200 |
| commit | a8e3d474bc57cc5cb67ac971b56d7004b0ae6c81 (patch) | |
| tree | 6c92075b915fa8b0ec5ab2cd555fb78cf5a32f6d | |
| parent | 0b5e1a8f1c082253b29034f634240373359212f6 (diff) | |
chore: refactor github actions and Jenkinsfile to only execute when required
| -rw-r--r-- | .github/workflows/full_check.yaml | 455 | ||||
| -rw-r--r-- | contrib/depends/Jenkinsfile | 26 |
2 files changed, 223 insertions, 258 deletions
diff --git a/.github/workflows/full_check.yaml b/.github/workflows/full_check.yaml index 8b0563a..e4a8c0b 100644 --- a/.github/workflows/full_check.yaml +++ b/.github/workflows/full_check.yaml @@ -7,6 +7,9 @@ jobs: lib_mingw: strategy: fail-fast: false + matrix: + coin: [monero, wownero] + target: [x86_64-w64-mingw32, i686-w64-mingw32] runs-on: ubuntu-latest container: image: ubuntu:24.04 @@ -30,25 +33,16 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }} - - name: x86_64-w64-mingw32 + key: ${{ github.job }}-${{ matrix.coin }}-${{ matrix.target }} + - name: Build ${{ matrix.coin }} for ${{ matrix.target }} run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero x86_64-w64-mingw32 -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero x86_64-w64-mingw32 -j$(nproc) - - name: i686-w64-mingw32 - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero i686-w64-mingw32 -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero i686-w64-mingw32 -j$(nproc) + env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh ${{ matrix.coin }} ${{ matrix.target }} -j$(nproc) - name: rename artifacts run: | - mkdir release/gh/ - for i in release/monero/* - do - cp "$i" "release/gh/monero_$(basename $i)" - done - for i in release/wownero/* + mkdir -p release/gh/ + for i in release/${{ matrix.coin }}/* do - cp "$i" "release/gh/wownero_$(basename $i)" + cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -59,19 +53,16 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: mingw monero - path: release/monero - - name: Upload lib wownero - uses: actions/upload-artifact@v4 - with: - name: mingw wownero - path: release/wownero + name: mingw-${{ matrix.coin }}-${{ matrix.target }} + path: release/${{ matrix.coin }} + lib_android: strategy: fail-fast: false + matrix: + coin: [monero, wownero, zano] + target: [x86_64-linux-android, armv7a-linux-androideabi, aarch64-linux-android] runs-on: ubuntu-22.04 - # container: - # image: debian:bookworm steps: - name: Free Disk Space if: ${{ !startsWith(github.ref, 'refs/tags/v') }} @@ -103,36 +94,16 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }} - - name: monero - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero x86_64-linux-android -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero armv7a-linux-androideabi -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero aarch64-linux-android -j$(nproc) - - name: wownero - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero aarch64-linux-android -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero x86_64-linux-android -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero armv7a-linux-androideabi -j$(nproc) - - name: zano + key: ${{ github.job }}-${{ matrix.coin }}-${{ matrix.target }} + - name: Build ${{ matrix.coin }} for ${{ matrix.target }} run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano x86_64-linux-android -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano aarch64-linux-android -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano armv7a-linux-androideabi -j$(nproc) + env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh ${{ matrix.coin }} ${{ matrix.target }} -j$(nproc) - name: rename artifacts run: | - mkdir release/gh/ - for i in release/monero/* + mkdir -p release/gh/ + for i in release/${{ matrix.coin }}/* do - cp "$i" "release/gh/monero_$(basename $i)" - done - for i in release/wownero/* - do - cp "$i" "release/gh/wownero_$(basename $i)" - done - for i in release/zano/* - do - cp "$i" "release/gh/zano_$(basename $i)" + cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -140,28 +111,22 @@ jobs: with: files: release/gh/* token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} - - name: Upload lib monero - uses: actions/upload-artifact@v4 - with: - name: android monero - path: release/monero - - name: Upload lib wownero - uses: actions/upload-artifact@v4 - with: - name: android wownero - path: release/wownero - - name: Upload lib zano + - name: Upload lib uses: actions/upload-artifact@v4 with: - name: android zano - path: release/zano + name: android-${{ matrix.coin }}-${{ matrix.target }} + path: release/${{ matrix.coin }} - name: remove android_ndk run: | rm -rf contrib/depends/built/*/android_ndk rm -rf contrib/depends/sources/android-ndk-r26d-linux.zip + lib_linux: strategy: fail-fast: false + matrix: + coin: [monero, wownero, zano] + target: [x86_64-linux-gnu, aarch64-linux-gnu, i686-linux-gnu] runs-on: ubuntu-latest container: image: debian:bullseye @@ -185,36 +150,16 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }} - - name: x86_64-linux-gnu - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero x86_64-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero x86_64-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano x86_64-linux-gnu -j$(nproc) - - name: aarch64-linux-gnu - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero aarch64-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero aarch64-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano aarch64-linux-gnu -j$(nproc) - - name: i686-linux-gnu + key: ${{ github.job }}-${{ matrix.coin }}-${{ matrix.target }} + - name: Build ${{ matrix.coin }} for ${{ matrix.target }} run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero i686-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero i686-linux-gnu -j$(nproc) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano i686-linux-gnu -j$(nproc) + env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh ${{ matrix.coin }} ${{ matrix.target }} -j$(nproc) - name: rename artifacts run: | - mkdir release/gh/ - for i in release/monero/* - do - cp "$i" "release/gh/monero_$(basename $i)" - done - for i in release/wownero/* - do - cp "$i" "release/gh/wownero_$(basename $i)" - done - for i in release/zano/* + mkdir -p release/gh/ + for i in release/${{ matrix.coin }}/* do - cp "$i" "release/gh/zano_$(basename $i)" + cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -225,21 +170,15 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: linux monero - path: release/monero - - name: Upload lib wownero - uses: actions/upload-artifact@v4 - with: - name: linux wownero - path: release/wownero - - name: Upload lib zano - uses: actions/upload-artifact@v4 - with: - name: linux zano - path: release/zano + name: linux-${{ matrix.coin }}-${{ matrix.target }} + path: release/${{ matrix.coin }} + lib_macos: strategy: fail-fast: false + matrix: + coin: [monero, wownero, zano] + target: [aarch64-apple-darwin, x86_64-apple-darwin] name: macos build runs-on: macos-14 steps: @@ -266,31 +205,16 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }} - - name: build (aarch64-apple-darwin) + key: ${{ github.job }}-${{ matrix.coin }}-${{ matrix.target }} + - name: Build ${{ matrix.coin }} for ${{ matrix.target }} run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) - - name: build (x86_64-apple-darwin) - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) + env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh ${{ matrix.coin }} ${{ matrix.target }} -j$(sysctl -n hw.logicalcpu) - name: rename artifacts run: | - mkdir release/gh/ - for i in release/monero/* - do - cp "$i" "release/gh/monero_$(basename $i)" - done - for i in release/wownero/* + mkdir -p release/gh/ + for i in release/${{ matrix.coin }}/* do - cp "$i" "release/gh/wownero_$(basename $i)" - done - for i in release/zano/* - do - cp "$i" "release/gh/zano_$(basename $i)" + cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -301,21 +225,15 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: macos monero - path: release/monero - - name: Upload lib wownero - uses: actions/upload-artifact@v4 - with: - name: macos wownero - path: release/wownero - - name: Upload lib zano - uses: actions/upload-artifact@v4 - with: - name: macos zano - path: release/zano + name: macos-${{ matrix.coin }}-${{ matrix.target }} + path: release/${{ matrix.coin }} + lib_ios: strategy: fail-fast: false + matrix: + coin: [monero, wownero, zano] + target: [aarch64-apple-ios, aarch64-apple-iossimulator] name: ios build runs-on: macos-15 steps: @@ -342,33 +260,16 @@ jobs: - name: ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ github.job }} - - name: build (aarch64-apple-ios) - run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) - - - name: build (aarch64-apple-iossimulator) + key: ${{ github.job }}-${{ matrix.coin }}-${{ matrix.target }} + - name: Build ${{ matrix.coin }} for ${{ matrix.target }} run: | - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh monero aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh wownero aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) - env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh zano aarch64-apple-iossimulator -j$(sysctl -n hw.logicalcpu) - + env DEPENDS_UNTRUSTED_FAST_BUILDS=forced ./build_single.sh ${{ matrix.coin }} ${{ matrix.target }} -j$(sysctl -n hw.logicalcpu) - name: rename artifacts run: | - mkdir release/gh/ - for i in release/monero/* - do - cp "$i" "release/gh/monero_$(basename $i)" - done - for i in release/wownero/* + mkdir -p release/gh/ + for i in release/${{ matrix.coin }}/* do - cp "$i" "release/gh/wownero_$(basename $i)" - done - for i in release/zano/* - do - cp "$i" "release/gh/zano_$(basename $i)" + cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" done - name: Release uses: softprops/action-gh-release@v2 @@ -379,100 +280,123 @@ jobs: - name: Upload lib uses: actions/upload-artifact@v4 with: - name: ios monero - path: release/monero - - name: Upload lib wownero - uses: actions/upload-artifact@v4 - with: - name: ios wownero - path: release/wownero - - name: Upload lib zano - uses: actions/upload-artifact@v4 - with: - name: ios zano - path: release/zano + name: ios-${{ matrix.coin }}-${{ matrix.target }} + path: release/${{ matrix.coin }} + bulk_lib_release: name: create single release file runs-on: ubuntu-latest - needs: [ - lib_mingw, lib_android, lib_linux, lib_macos, lib_ios - ] + needs: [lib_mingw, lib_android, lib_linux, lib_macos, lib_ios] + strategy: + matrix: + coin: [monero, wownero, zano] + platform: [android, ios, linux, macos] + include: + - coin: monero + platform: mingw + - coin: wownero + platform: mingw steps: - - uses: actions/download-artifact@v4 - with: - name: android monero - path: release/monero - - uses: actions/download-artifact@v4 - with: - name: android wownero - path: release/wownero - - uses: actions/download-artifact@v4 - with: - name: android zano - path: release/zano - - uses: actions/download-artifact@v4 - with: - name: ios monero - path: release/monero - - uses: actions/download-artifact@v4 - with: - name: ios wownero - path: release/wownero - - uses: actions/download-artifact@v4 - with: - name: ios zano - path: release/zano - - uses: actions/download-artifact@v4 - with: - name: linux monero - path: release/monero - - uses: actions/download-artifact@v4 - with: - name: linux wownero - path: release/wownero - - uses: actions/download-artifact@v4 - with: - name: linux zano - path: release/zano - - uses: actions/download-artifact@v4 - with: - name: macos monero - path: release/monero - - uses: actions/download-artifact@v4 - with: - name: macos wownero - path: release/wownero - - uses: actions/download-artifact@v4 - with: - name: macos zano - path: release/zano - - uses: actions/download-artifact@v4 - with: - name: mingw monero - path: release/monero - - uses: actions/download-artifact@v4 + - name: Create release directory + run: mkdir -p release/${{ matrix.coin }} + + - name: Download Android artifacts + if: matrix.platform == 'android' + uses: actions/download-artifact@v4 + with: + pattern: android-${{ matrix.coin }}-* + path: temp-android + merge-multiple: true + + - name: Download iOS artifacts + if: matrix.platform == 'ios' + uses: actions/download-artifact@v4 + with: + pattern: ios-${{ matrix.coin }}-* + path: temp-ios + merge-multiple: true + + - name: Download Linux artifacts + if: matrix.platform == 'linux' + uses: actions/download-artifact@v4 + with: + pattern: linux-${{ matrix.coin }}-* + path: temp-linux + merge-multiple: true + + - name: Download macOS artifacts + if: matrix.platform == 'macos' + uses: actions/download-artifact@v4 + with: + pattern: macos-${{ matrix.coin }}-* + path: temp-macos + merge-multiple: true + + - name: Download MinGW artifacts + if: matrix.platform == 'mingw' && (matrix.coin == 'monero' || matrix.coin == 'wownero') + uses: actions/download-artifact@v4 + with: + pattern: mingw-${{ matrix.coin }}-* + path: temp-mingw + merge-multiple: true + + - name: Copy artifacts to release directory + run: | + if [ -d "temp-${{ matrix.platform }}" ]; then + cp -r temp-${{ matrix.platform }}/* release/${{ matrix.coin }}/ + fi + + - name: Upload consolidated artifacts + uses: actions/upload-artifact@v4 with: - name: mingw wownero - path: release/wownero + name: ${{ matrix.platform }}-${{ matrix.coin }}-all + path: release/${{ matrix.coin }} + + final_bulk_release: + name: create final release bundle + runs-on: ubuntu-latest + needs: [bulk_lib_release] + steps: + - name: Create release directory + run: mkdir -p release/{monero,wownero,zano} + + - name: Download all consolidated artifacts + uses: actions/download-artifact@v4 + with: + pattern: "*-all" + path: temp-all + + - name: Reorganize artifacts + run: | + # Move all artifacts to their respective coin directories + for coin in monero wownero zano; do + find temp-all -name "*-${coin}-all" -type d | while read dir; do + if [ -d "$dir" ]; then + cp -r "$dir"/* "release/${coin}/" 2>/dev/null || true + fi + done + done + - name: zip release dir run: zip -r release-bundle.zip release + - name: Release uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: files: release-bundle.zip token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} - - name: Upload lib + + - name: Upload final bundle uses: actions/upload-artifact@v4 with: name: release-bulk path: release + deno_monerots_test_linux: name: test ts library runs-on: ubuntu-24.04 - needs: [ - lib_linux - ] + needs: [lib_linux] steps: - uses: actions/checkout@v4 with: @@ -480,10 +404,13 @@ jobs: submodules: recursive - uses: actions/download-artifact@v4 with: - name: linux monero - path: release/monero + pattern: linux-monero-x86_64-linux-gnu + path: temp-linux-monero + merge-multiple: true - name: unpack and move monero_c run: | + mkdir -p release/monero + cp -r temp-linux-monero/* release/monero/ unxz -f -k release/*/*.xz - uses: denoland/setup-deno@v1 with: @@ -507,9 +434,7 @@ jobs: fail-fast: false matrix: coin: [monero, wownero] - needs: [ - lib_linux - ] + needs: [lib_linux] runs-on: ubuntu-24.04 steps: - uses: denoland/setup-deno@v2 @@ -523,8 +448,14 @@ jobs: - uses: actions/download-artifact@v4 with: - name: linux ${{ matrix.coin }} - path: release/${{ matrix.coin }} + pattern: linux-${{ matrix.coin }}-* + path: temp-linux-${{ matrix.coin }} + merge-multiple: true + + - name: Setup release directory + run: | + mkdir -p release/${{ matrix.coin }} + cp -r temp-linux-${{ matrix.coin }}/* release/${{ matrix.coin }}/ - name: Run regression tests run: COIN="${{ matrix.coin }}" deno test -A tests/regression.test.ts @@ -534,9 +465,7 @@ jobs: strategy: matrix: coin: [monero, wownero] - needs: [ - lib_macos - ] + needs: [lib_macos] runs-on: macos-14 steps: - uses: denoland/setup-deno@v2 @@ -550,8 +479,14 @@ jobs: - uses: actions/download-artifact@v4 with: - name: macos ${{ matrix.coin }} - path: release/${{ matrix.coin }} + pattern: macos-${{ matrix.coin }}-* + path: temp-macos-${{ matrix.coin }} + merge-multiple: true + + - name: Setup release directory + run: | + mkdir -p release/${{ matrix.coin }} + cp -r temp-macos-${{ matrix.coin }}/* release/${{ matrix.coin }}/ - name: Run regression tests run: COIN="${{ matrix.coin }}" deno test -A tests/regression.test.ts @@ -561,9 +496,7 @@ jobs: strategy: matrix: coin: [monero, wownero] - needs: [ - lib_linux - ] + needs: [lib_linux] runs-on: ubuntu-24.04 steps: - uses: denoland/setup-deno@v2 @@ -577,8 +510,14 @@ jobs: - uses: actions/download-artifact@v4 with: - name: linux ${{ matrix.coin }} - path: release/${{ matrix.coin }} + pattern: linux-${{ matrix.coin }}-* + path: temp-linux-${{ matrix.coin }} + merge-multiple: true + + - name: Setup release directory + run: | + mkdir -p release/${{ matrix.coin }} + cp -r temp-linux-${{ matrix.coin }}/* release/${{ matrix.coin }}/ - name: Run integration tests run: COIN="${{ matrix.coin }}" deno test -A tests/integration.test.ts @@ -587,15 +526,12 @@ jobs: SECRET_WALLET_MNEMONIC: ${{ secrets.SECRET_WALLET_MNEMONIC }} SECRET_WALLET_RESTORE_HEIGHT: ${{ secrets.SECRET_WALLET_RESTORE_HEIGHT }} - integration_tests_macos: name: macos integration tests strategy: matrix: coin: [monero, wownero] - needs: [ - lib_macos - ] + needs: [lib_macos] runs-on: macos-14 steps: - uses: denoland/setup-deno@v2 @@ -609,8 +545,14 @@ jobs: - uses: actions/download-artifact@v4 with: - name: macos ${{ matrix.coin }} - path: release/${{ matrix.coin }} + pattern: macos-${{ matrix.coin }}-* + path: temp-macos-${{ matrix.coin }} + merge-multiple: true + + - name: Setup release directory + run: | + mkdir -p release/${{ matrix.coin }} + cp -r temp-macos-${{ matrix.coin }}/* release/${{ matrix.coin }}/ - name: Run integration tests run: COIN="${{ matrix.coin }}" deno test -A tests/integration.test.ts @@ -619,13 +561,10 @@ jobs: SECRET_WALLET_MNEMONIC: ${{ secrets.SECRET_WALLET_MNEMONIC }} SECRET_WALLET_RESTORE_HEIGHT: ${{ secrets.SECRET_WALLET_RESTORE_HEIGHT }} - comment_pr: name: comment on pr runs-on: ubuntu-latest - needs: [ - lib_mingw, lib_android, lib_linux, lib_macos, lib_ios, - ] + needs: [lib_mingw, lib_android, lib_linux, lib_macos, lib_ios] steps: - uses: actions/github-script@v7 continue-on-error: true diff --git a/contrib/depends/Jenkinsfile b/contrib/depends/Jenkinsfile index 7b73319..e7661af 100644 --- a/contrib/depends/Jenkinsfile +++ b/contrib/depends/Jenkinsfile @@ -25,7 +25,33 @@ pipeline { } stages { + stage('Check Changes') { + agent any + steps { + script { + def changes = sh( + script: "git diff --name-only HEAD~1 HEAD | grep '^contrib/depends' || echo 'NO_CHANGES'", + returnStdout: true + ).trim() + + if (changes == 'NO_CHANGES') { + echo "No changes detected in contrib/depends directory. Skipping build." + currentBuild.result = 'NOT_BUILT' + return + } else { + echo "Changes detected in contrib/depends directory:" + echo changes + } + } + } + } + stage('Build Dependencies') { + when { + not { + equals expected: 'NOT_BUILT', actual: currentBuild.result + } + } parallel { stage('Linux Builds') { agent { |
