ci: remove brew@1.76 dependency #434
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: full compatibility check | |
on: [push] | |
permissions: | |
issues: write | |
pull-requests: write | |
jobs: | |
lib_mingw: | |
strategy: | |
fail-fast: false | |
matrix: | |
coin: [monero, wownero] | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:24.04 | |
steps: | |
- name: Install dependencies | |
run: | | |
apt update | |
apt install -y pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 gperf gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 gcc-mingw-w64-i686 g++-mingw-w64-i686 | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Patch sources | |
run: | | |
git config --global --add safe.directory '*' | |
git config --global user.email "ci@mrcyjanek.net" | |
git config --global user.name "CI mrcyjanek.net" | |
./apply_patches.sh ${{ matrix.coin }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ github.job }}-${{ matrix.coin }} | |
- name: Cache built | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/cache@v4 | |
with: | |
path: | | |
contrib/depends/built/* | |
key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} | |
- name: ${{ matrix.coin }}/x86_64-w64-mingw32 | |
run: ./build_single.sh ${{ matrix.coin }} x86_64-w64-mingw32 -j$(nproc) | |
- name: ${{ matrix.coin }}/i686-w64-mingw32 | |
run: ./build_single.sh ${{ matrix.coin }} i686-w64-mingw32 -j$(nproc) | |
- name: rename artifacts | |
run: | | |
mkdir release/gh/ | |
for i in release/${{ matrix.coin }}/* | |
do | |
cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" | |
done | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: release/gh/* | |
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
- name: Upload lib | |
uses: actions/upload-artifact@v4 | |
with: | |
name: mingw ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
lib_android: | |
strategy: | |
fail-fast: false | |
matrix: | |
coin: [monero, wownero] | |
runs-on: ubuntu-24.04 | |
# container: | |
# image: debian:bookworm | |
steps: | |
- name: Free Disk Space | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: jlumbroso/free-disk-space@main | |
with: | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y llvm pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo6 gperf unzip python-is-python3 | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Patch sources | |
run: | | |
git config --global --add safe.directory '*' | |
git config --global user.email "ci@mrcyjanek.net" | |
git config --global user.name "CI mrcyjanek.net" | |
./apply_patches.sh ${{ matrix.coin }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ github.job }}-${{ matrix.coin }} | |
- name: Cache built | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/cache@v4 | |
with: | |
path: | | |
contrib/depends/built/* | |
key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} | |
- name: ${{ matrix.coin }}/x86_64-linux-android | |
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-android -j$(nproc) | |
- name: ${{ matrix.coin }}/aarch64-linux-android | |
run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-android -j$(nproc) | |
- name: ${{ matrix.coin }}/armv7a-linux-androideabi | |
run: ./build_single.sh ${{ matrix.coin }} armv7a-linux-androideabi -j$(nproc) | |
- name: rename artifacts | |
run: | | |
mkdir release/gh/ | |
for i in release/${{ matrix.coin }}/* | |
do | |
cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" | |
done | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: release/gh/* | |
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
- name: Upload lib | |
uses: actions/upload-artifact@v4 | |
with: | |
name: android ${{ matrix.coin }} | |
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] | |
runs-on: ubuntu-latest | |
container: | |
image: debian:bullseye | |
steps: | |
- name: Install dependencies | |
run: | | |
apt update | |
apt install -y pigz build-essential pkg-config autoconf libtool ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-i686-linux-gnu g++-i686-linux-gnu | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- name: Patch sources | |
run: | | |
git config --global --add safe.directory '*' | |
git config --global user.email "ci@mrcyjanek.net" | |
git config --global user.name "CI mrcyjanek.net" | |
./apply_patches.sh ${{ matrix.coin }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ github.job }}-${{ matrix.coin }} | |
- name: Cache built | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/cache@v4 | |
with: | |
path: | | |
contrib/depends/built/* | |
key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} | |
- name: ${{ matrix.coin }}/x86_64-linux-gnu | |
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-gnu -j$(nproc) | |
- name: ${{ matrix.coin }}/aarch64-linux-gnu | |
run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-gnu -j$(nproc) | |
- name: ${{ matrix.coin }}/i686-linux-gnu | |
run: ./build_single.sh ${{ matrix.coin }} i686-linux-gnu -j$(nproc) | |
- name: rename artifacts | |
run: | | |
mkdir release/gh/ | |
for i in release/${{ matrix.coin }}/* | |
do | |
cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" | |
done | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: release/gh/* | |
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
- name: Upload lib | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
lib_macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
coin: [monero, wownero] | |
name: macos build | |
runs-on: macos-14 | |
steps: | |
- name: Checkout monero_c repo | |
uses: actions/checkout@v4 | |
with: | |
repository: MrCyjaneK/monero_c | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '15.4' | |
- name: install dependencies | |
run: | | |
brew install ccache binutils pigz autoconf automake libtool | |
- name: Patch sources | |
run: | | |
git config --global --add safe.directory '*' | |
git config --global user.email "ci@mrcyjanek.net" | |
git config --global user.name "CI mrcyjanek.net" | |
./apply_patches.sh ${{ matrix.coin }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ github.job }}-${{ matrix.coin }} | |
- name: Cache built | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/cache@v4 | |
with: | |
path: | | |
contrib/depends/built/* | |
key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} | |
- name: build (aarch64-apple-darwin) | |
run: | | |
./build_single.sh ${{ matrix.coin }} aarch64-apple-darwin -j$(sysctl -n hw.logicalcpu) | |
- name: build (x86_64-apple-darwin) | |
run: | | |
./build_single.sh ${{ matrix.coin }} x86_64-apple-darwin -j$(sysctl -n hw.logicalcpu) | |
- name: rename artifacts | |
run: | | |
mkdir release/gh/ | |
for i in release/${{ matrix.coin }}/* | |
do | |
cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" | |
done | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: release/gh/* | |
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
- name: Upload lib | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
lib_ios: | |
strategy: | |
fail-fast: false | |
matrix: | |
coin: [monero, wownero] | |
name: ios build | |
runs-on: macos-14 | |
steps: | |
- name: Checkout monero_c repo | |
uses: actions/checkout@v4 | |
with: | |
repository: MrCyjaneK/monero_c | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '15.4' | |
- name: install dependencies | |
run: | | |
brew install ccache unbound zmq autoconf automake libtool | |
- name: Patch sources | |
run: | | |
git config --global --add safe.directory '*' | |
git config --global user.email "ci@mrcyjanek.net" | |
git config --global user.name "CI mrcyjanek.net" | |
./apply_patches.sh ${{ matrix.coin }} | |
- name: ccache | |
uses: hendrikmuhs/ccache-action@v1.2 | |
with: | |
key: ${{ github.job }}-${{ matrix.coin }} | |
- name: Cache built | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
uses: actions/cache@v4 | |
with: | |
path: | | |
contrib/depends/built/* | |
key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }} | |
- name: build | |
run: | | |
./build_single.sh ${{ matrix.coin }} aarch64-apple-ios -j$(sysctl -n hw.logicalcpu) | |
- name: rename artifacts | |
run: | | |
mkdir release/gh/ | |
for i in release/${{ matrix.coin }}/* | |
do | |
cp "$i" "release/gh/${{ matrix.coin }}_$(basename $i)" | |
done | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: release/gh/* | |
token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
- name: Upload lib | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ios ${{ matrix.coin }} | |
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 | |
] | |
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: ios monero | |
path: release/monero | |
- uses: actions/download-artifact@v4 | |
with: | |
name: ios wownero | |
path: release/wownero | |
- 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: macos monero | |
path: release/monero | |
- uses: actions/download-artifact@v4 | |
with: | |
name: macos wownero | |
path: release/wownero | |
- uses: actions/download-artifact@v4 | |
with: | |
name: mingw monero | |
path: release/monero | |
- uses: actions/download-artifact@v4 | |
with: | |
name: mingw wownero | |
path: release/wownero | |
- 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 | |
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 | |
] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: actions/download-artifact@v4 | |
with: | |
name: linux monero | |
path: release/monero | |
- name: unpack and move monero_c | |
run: | | |
unxz -f -k release/*/*.xz | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: vx.x.x | |
- name: Create symlink | |
run: | | |
cd impls/monero.ts | |
mkdir lib | |
cd lib | |
ln -s ../../../release/monero/x86_64-linux-gnu_libwallet2_api_c.so | |
mv x86_64-linux-gnu_libwallet2_api_c.so monero_libwallet2_api_c.so | |
cd .. | |
- name: Run tests | |
run: | | |
cd impls/monero.ts | |
deno run --unstable-ffi --allow-ffi checksum.ts | |
regression_tests_linux: | |
name: linux regression tests | |
strategy: | |
fail-fast: false | |
matrix: | |
coin: [monero, wownero] | |
needs: [ | |
lib_linux | |
] | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: actions/download-artifact@v4 | |
with: | |
name: linux ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
- name: Run regression tests | |
run: COIN="${{ matrix.coin }}" deno test -A tests/regression.test.ts | |
regression_tests_macos: | |
name: macos regression tests | |
strategy: | |
matrix: | |
coin: [monero, wownero] | |
needs: [ | |
lib_macos | |
] | |
runs-on: macos-14 | |
steps: | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: actions/download-artifact@v4 | |
with: | |
name: macos ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
- name: Run regression tests | |
run: COIN="${{ matrix.coin }}" deno test -A tests/regression.test.ts | |
integration_tests_linux: | |
name: linux integration tests | |
strategy: | |
matrix: | |
coin: [monero, wownero] | |
needs: [ | |
lib_linux | |
] | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: actions/download-artifact@v4 | |
with: | |
name: linux ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
- name: Run integration tests | |
run: COIN="${{ matrix.coin }}" deno test -A tests/integration.test.ts | |
env: | |
SECRET_WALLET_PASSWORD: ${{ secrets.SECRET_WALLET_PASSWORD }} | |
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 | |
] | |
runs-on: macos-14 | |
steps: | |
- uses: denoland/setup-deno@v2 | |
with: | |
deno-version: v2.x | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
- uses: actions/download-artifact@v4 | |
with: | |
name: macos ${{ matrix.coin }} | |
path: release/${{ matrix.coin }} | |
- name: Run integration tests | |
run: COIN="${{ matrix.coin }}" deno test -A tests/integration.test.ts | |
env: | |
SECRET_WALLET_PASSWORD: ${{ secrets.SECRET_WALLET_PASSWORD }} | |
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, | |
] | |
steps: | |
- uses: actions/github-script@v7 | |
continue-on-error: true | |
id: get_issue_number | |
with: | |
script: | | |
if (context.issue.number) { | |
// Return issue number if present | |
return context.issue.number; | |
} else { | |
// Otherwise return issue number from commit | |
return ( | |
await github.rest.repos.listPullRequestsAssociatedWithCommit({ | |
commit_sha: context.sha, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
}) | |
).data[0].number; | |
} | |
result-encoding: string | |
- name: Find Comment | |
continue-on-error: true | |
uses: peter-evans/find-comment@v3 | |
id: fc | |
with: | |
issue-number: ${{steps.get_issue_number.outputs.result}} | |
comment-author: 'github-actions[bot]' | |
body-includes: download artifacts | |
- name: Update comment | |
continue-on-error: true | |
if: steps.fc.outcome == 'success' | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
comment-id: ${{ steps.fc.outputs.comment-id }} | |
issue-number: ${{steps.get_issue_number.outputs.result}} | |
body: | | |
[download artifacts #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}}) | |
edit-mode: replace | |
- name: Create comment | |
continue-on-error: true | |
if: steps.fc.outcome == 'failure' | |
uses: peter-evans/create-or-update-comment@v4 | |
with: | |
issue-number: ${{steps.get_issue_number.outputs.result}} | |
body: | | |
[download artifacts #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}}) (this comment will update whenever you push) |