From 622fb1e77771a032f528278dfd97b6b216a9790a Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 16:58:27 +0700 Subject: [PATCH 01/11] ci: run only iOS jobs for 1.11.1 --- .github/workflows/build_package.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index e965cab..a450839 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -5,6 +5,7 @@ on: # - "v[0-9]+.[0-9]+.[0-9]+*" branches: - "main" + - "1.11.1" # - "**" pull_request: branches: @@ -29,6 +30,7 @@ jobs: libgit2_version: ${{ env.LIBGIT2_VERSION }} build_libgit2_linux: + if: false runs-on: ubuntu-latest steps: - name: Check out repository @@ -41,6 +43,7 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_macos: + if: false runs-on: macos-latest steps: - name: Check out repository @@ -130,6 +133,7 @@ jobs: path: /tmp/git2dart-ios/export/** build_libgit2_windows: + if: false runs-on: windows-latest steps: - name: Check out repository @@ -142,6 +146,7 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_android: + if: false runs-on: ubuntu-latest strategy: matrix: @@ -159,6 +164,7 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} run_tests: + if: false needs: [generate_bindings, build_libgit2_linux, build_libgit2_macos, assemble_libgit2_ios, build_libgit2_windows, build_libgit2_android] # needs: [generate_bindings, build_libgit2_android] runs-on: ${{ matrix.os }} @@ -378,6 +384,7 @@ jobs: timestamp "Finished flutter drive with prebuilt app" run_android_tests: + if: false needs: [generate_bindings, build_libgit2_android] runs-on: ubuntu-latest steps: @@ -460,6 +467,7 @@ jobs: cd "$RUNNER_TEMP/git2dart_mobile_test" && flutter test integration_test/opts_bindings_integration_test.dart -d emulator-5554 -r expanded publish_package: + if: false needs: [run_tests, run_ios_tests, run_android_tests] runs-on: ubuntu-latest steps: From 3453aa47b1bb69d6acaddee602427b97af2a3ac9 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:09:33 +0700 Subject: [PATCH 02/11] ci: use flutter test for iOS integration for #18 --- .github/workflows/build_package.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index a450839..3bd72e0 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -368,20 +368,12 @@ jobs: ' "$seconds" "$@" } - app_bundle="$test_app/build/ios/iphonesimulator/Runner.app" - if [ ! -d "$app_bundle" ]; then - echo "::error::Built iOS simulator app was not found at $app_bundle" - find "$test_app/build/ios" -maxdepth 3 -type d -name '*.app' -print || true - exit 1 - fi - - timestamp "Starting flutter drive with prebuilt app" - run_with_timeout 600 flutter drive \ + timestamp "Starting flutter test on iOS simulator" + run_with_timeout 600 flutter test \ + integration_test/opts_bindings_integration_test.dart \ -d "$device_id" \ - --use-application-binary="$app_bundle" \ - --driver=test_driver/integration_test.dart \ - --target=integration_test/opts_bindings_integration_test.dart - timestamp "Finished flutter drive with prebuilt app" + -r expanded + timestamp "Finished flutter test on iOS simulator" run_android_tests: if: false From 36f78c97c5c8504c86f9f43dd1238ba31217ad03 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:28:55 +0700 Subject: [PATCH 03/11] ci: re-enable all platform jobs for 1.11.1 --- .github/workflows/build_package.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index 3bd72e0..eae2a44 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -30,7 +30,6 @@ jobs: libgit2_version: ${{ env.LIBGIT2_VERSION }} build_libgit2_linux: - if: false runs-on: ubuntu-latest steps: - name: Check out repository @@ -43,7 +42,6 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_macos: - if: false runs-on: macos-latest steps: - name: Check out repository @@ -133,7 +131,6 @@ jobs: path: /tmp/git2dart-ios/export/** build_libgit2_windows: - if: false runs-on: windows-latest steps: - name: Check out repository @@ -146,7 +143,6 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_android: - if: false runs-on: ubuntu-latest strategy: matrix: @@ -164,7 +160,6 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} run_tests: - if: false needs: [generate_bindings, build_libgit2_linux, build_libgit2_macos, assemble_libgit2_ios, build_libgit2_windows, build_libgit2_android] # needs: [generate_bindings, build_libgit2_android] runs-on: ${{ matrix.os }} @@ -376,7 +371,6 @@ jobs: timestamp "Finished flutter test on iOS simulator" run_android_tests: - if: false needs: [generate_bindings, build_libgit2_android] runs-on: ubuntu-latest steps: @@ -459,7 +453,6 @@ jobs: cd "$RUNNER_TEMP/git2dart_mobile_test" && flutter test integration_test/opts_bindings_integration_test.dart -d emulator-5554 -r expanded publish_package: - if: false needs: [run_tests, run_ios_tests, run_android_tests] runs-on: ubuntu-latest steps: From e0ba2d58ed33de3e91f94fcd73c11886221d2cfd Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:35:17 +0700 Subject: [PATCH 04/11] ci: optimize build graph for 1.11.1 --- .github/workflows/build_package.yml | 101 ++++++++++++++++++---------- 1 file changed, 64 insertions(+), 37 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index eae2a44..50d3945 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -142,11 +142,25 @@ jobs: libgit2_version: ${{ env.LIBGIT2_VERSION }} libssh2_version: ${{ env.LIBSSH2_VERSION }} - build_libgit2_android: + build_libgit2_android_x86_64: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Build Android x86_64 artifacts + uses: ./.github/actions/build-android + with: + architecture: x86_64 + libgit2_version: ${{ env.LIBGIT2_VERSION }} + libssh2_version: ${{ env.LIBSSH2_VERSION }} + openssl_version: ${{ env.OPENSSL_VERSION }} + + build_libgit2_android_other: runs-on: ubuntu-latest strategy: matrix: - os: [armeabi-v7a, arm64-v8a, x86, x86_64] + os: [armeabi-v7a, arm64-v8a, x86] steps: - name: Check out repository uses: actions/checkout@v4 @@ -159,13 +173,9 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} openssl_version: ${{ env.OPENSSL_VERSION }} - run_tests: - needs: [generate_bindings, build_libgit2_linux, build_libgit2_macos, assemble_libgit2_ios, build_libgit2_windows, build_libgit2_android] - # needs: [generate_bindings, build_libgit2_android] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + run_linux_tests: + needs: [generate_bindings, build_libgit2_linux] + runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 @@ -178,38 +188,73 @@ jobs: - name: download linux deps uses: actions/download-artifact@v4 - if: ${{ runner.os == 'Linux' }} with: path: ./linux name: cache-linux + - name: Install linux dependencies - if: ${{ runner.os == 'Linux' }} run: | sudo DEBIAN_FRONTEND=noninteractive apt-get update -o Acquire::Retries=3 && sudo DEBIAN_FRONTEND=noninteractive apt-get install -o Acquire::Retries=3 -y --no-install-recommends openssl + - name: Set up Flutter + uses: subosito/flutter-action@v2 + + - run: flutter pub get + - run: flutter test -r expanded + + run_macos_tests: + needs: [generate_bindings, build_libgit2_macos] + runs-on: macos-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: download bindings + uses: actions/download-artifact@v4 + with: + path: ./lib/src/ + name: cache-bindings + - name: download macos deps uses: actions/download-artifact@v4 - if: ${{ runner.os == 'macOS' }} with: path: ./macos name: cache-macos + - name: Set up Flutter + uses: subosito/flutter-action@v2 + + - run: flutter pub get + - run: flutter test -r expanded + + run_windows_tests: + needs: [generate_bindings, build_libgit2_windows] + runs-on: windows-latest + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: download bindings + uses: actions/download-artifact@v4 + with: + path: ./lib/src/ + name: cache-bindings + - name: Install windows dependencies - if: ${{ runner.os == 'Windows' }} run: | choco install openssl -y - name: download windows deps uses: actions/download-artifact@v4 - if: ${{ runner.os == 'Windows' }} with: path: ./windows name: cache-windows - - name: Run ffigen + - name: Set up Flutter uses: subosito/flutter-action@v2 - - run: flutter pub get - - run: flutter test -r expanded + + - run: flutter pub get + - run: flutter test -r expanded run_ios_tests: needs: [generate_bindings, assemble_libgit2_ios] @@ -371,7 +416,7 @@ jobs: timestamp "Finished flutter test on iOS simulator" run_android_tests: - needs: [generate_bindings, build_libgit2_android] + needs: [generate_bindings, build_libgit2_android_x86_64] runs-on: ubuntu-latest steps: - name: Check out repository @@ -389,24 +434,6 @@ jobs: path: ./android/src/main/jniLibs/x86_64 name: cache-android-x86_64 - - name: download android binaries arm64-v8a - uses: actions/download-artifact@v4 - with: - path: ./android/src/main/jniLibs/arm64-v8a - name: cache-android-arm64-v8a - - - name: download android binaries x86 - uses: actions/download-artifact@v4 - with: - path: ./android/src/main/jniLibs/x86 - name: cache-android-x86 - - - name: download android binaries armeabi-v7a - uses: actions/download-artifact@v4 - with: - path: ./android/src/main/jniLibs/armeabi-v7a - name: cache-android-armeabi-v7a - - name: Set up Flutter uses: subosito/flutter-action@v2 @@ -453,7 +480,7 @@ jobs: cd "$RUNNER_TEMP/git2dart_mobile_test" && flutter test integration_test/opts_bindings_integration_test.dart -d emulator-5554 -r expanded publish_package: - needs: [run_tests, run_ios_tests, run_android_tests] + needs: [run_linux_tests, run_macos_tests, run_windows_tests, run_ios_tests, run_android_tests, build_libgit2_android_other] runs-on: ubuntu-latest steps: - name: Check out repository From 5c67147854cbe97f98eccb9f3485751c41ca0714 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:30:46 +0700 Subject: [PATCH 05/11] ci: speed up Windows native build for 1.11.1 --- .github/actions/build-windows/action.yml | 44 ++++++++++++++++++------ 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/.github/actions/build-windows/action.yml b/.github/actions/build-windows/action.yml index ae71bd5..89d060f 100644 --- a/.github/actions/build-windows/action.yml +++ b/.github/actions/build-windows/action.yml @@ -10,9 +10,35 @@ inputs: runs: using: composite steps: - - name: Install dependencies + - name: Set up MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Verify dependencies shell: pwsh - run: choco install openssl cmake -y + run: | + cmake --version + ninja --version + openssl version + + $openssl = Get-Command openssl -ErrorAction Stop + $opensslBinRoot = Split-Path (Split-Path $openssl.Source -Parent) -Parent + $opensslRoot = @( + $opensslBinRoot, + 'C:/Program Files/OpenSSL', + 'C:/Program Files/OpenSSL-Win64' + ) | Where-Object { + (Test-Path "$_/include/openssl/ssl.h") -and + (Test-Path "$_/lib/libcrypto.lib") -and + (Test-Path "$_/lib/libssl.lib") + } | Select-Object -First 1 + + if (-not $opensslRoot) { + Write-Error 'Could not find OpenSSL headers and import libraries' + exit 1 + } + + "OPENSSL_ROOT_DIR=$opensslRoot" >> $env:GITHUB_ENV + Write-Host "OpenSSL root: $opensslRoot" - name: Checkout libssh2 uses: actions/checkout@v4 @@ -25,10 +51,8 @@ runs: shell: pwsh run: | cd libssh2 - mkdir build - cd build - cmake -DCRYPTO_BACKEND=OpenSSL -DCMAKE_INSTALL_PREFIX=D:/libssh2/install .. - cmake --build . --config Release --target install + cmake -S . -B build -G Ninja -DCRYPTO_BACKEND=OpenSSL -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libssh2/install + cmake --build build --parallel --target install mkdir -p D:/export copy D:/libssh2/install/bin/libssh2.dll D:/export/libssh2.dll @@ -43,11 +67,9 @@ runs: shell: pwsh run: | cd libgit2 - mkdir build - cd build - cmake -DUSE_SSH=libssh2 -DBUILD_TESTS=ON -DEXPERIMENTAL_SHA256=ON -DCMAKE_INSTALL_PREFIX=D:/libgit2/install -DLIBSSH2_INCLUDE_DIR=D:/libssh2/install/include -DLIBSSH2_LIBRARY=D:/libssh2/install/lib/libssh2.lib .. - cmake --build . --config Release --target install - .\Release\libgit2_tests.exe + cmake -S . -B build -G Ninja -DUSE_SSH=libssh2 -DBUILD_TESTS=ON -DEXPERIMENTAL_SHA256=ON -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libgit2/install -DLIBSSH2_INCLUDE_DIR=D:/libssh2/install/include -DLIBSSH2_LIBRARY=D:/libssh2/install/lib/libssh2.lib + cmake --build build --parallel --target install + .\build\libgit2_tests.exe - name: Export git2 library shell: pwsh From 132ea386b07156c432027ad5b630a1e8d21783c3 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:36:54 +0700 Subject: [PATCH 06/11] ci: use Windows OpenSSL import libraries for 1.11.1 --- .github/actions/build-windows/action.yml | 30 ++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/.github/actions/build-windows/action.yml b/.github/actions/build-windows/action.yml index 89d060f..7dc32d3 100644 --- a/.github/actions/build-windows/action.yml +++ b/.github/actions/build-windows/action.yml @@ -27,9 +27,18 @@ runs: 'C:/Program Files/OpenSSL', 'C:/Program Files/OpenSSL-Win64' ) | Where-Object { + $libcrypto = @( + "$_/lib/libcrypto.lib", + "$_/lib/VC/x64/MD/libcrypto.lib" + ) | Where-Object { Test-Path $_ } | Select-Object -First 1 + $libssl = @( + "$_/lib/libssl.lib", + "$_/lib/VC/x64/MD/libssl.lib" + ) | Where-Object { Test-Path $_ } | Select-Object -First 1 + (Test-Path "$_/include/openssl/ssl.h") -and - (Test-Path "$_/lib/libcrypto.lib") -and - (Test-Path "$_/lib/libssl.lib") + $libcrypto -and + $libssl } | Select-Object -First 1 if (-not $opensslRoot) { @@ -37,8 +46,21 @@ runs: exit 1 } + $opensslCryptoLibrary = @( + "$opensslRoot/lib/libcrypto.lib", + "$opensslRoot/lib/VC/x64/MD/libcrypto.lib" + ) | Where-Object { Test-Path $_ } | Select-Object -First 1 + $opensslSslLibrary = @( + "$opensslRoot/lib/libssl.lib", + "$opensslRoot/lib/VC/x64/MD/libssl.lib" + ) | Where-Object { Test-Path $_ } | Select-Object -First 1 + "OPENSSL_ROOT_DIR=$opensslRoot" >> $env:GITHUB_ENV + "OPENSSL_CRYPTO_LIBRARY=$opensslCryptoLibrary" >> $env:GITHUB_ENV + "OPENSSL_SSL_LIBRARY=$opensslSslLibrary" >> $env:GITHUB_ENV Write-Host "OpenSSL root: $opensslRoot" + Write-Host "OpenSSL crypto library: $opensslCryptoLibrary" + Write-Host "OpenSSL ssl library: $opensslSslLibrary" - name: Checkout libssh2 uses: actions/checkout@v4 @@ -51,7 +73,7 @@ runs: shell: pwsh run: | cd libssh2 - cmake -S . -B build -G Ninja -DCRYPTO_BACKEND=OpenSSL -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libssh2/install + cmake -S . -B build -G Ninja -DCRYPTO_BACKEND=OpenSSL -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DOPENSSL_CRYPTO_LIBRARY="$env:OPENSSL_CRYPTO_LIBRARY" -DOPENSSL_SSL_LIBRARY="$env:OPENSSL_SSL_LIBRARY" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libssh2/install cmake --build build --parallel --target install mkdir -p D:/export copy D:/libssh2/install/bin/libssh2.dll D:/export/libssh2.dll @@ -67,7 +89,7 @@ runs: shell: pwsh run: | cd libgit2 - cmake -S . -B build -G Ninja -DUSE_SSH=libssh2 -DBUILD_TESTS=ON -DEXPERIMENTAL_SHA256=ON -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libgit2/install -DLIBSSH2_INCLUDE_DIR=D:/libssh2/install/include -DLIBSSH2_LIBRARY=D:/libssh2/install/lib/libssh2.lib + cmake -S . -B build -G Ninja -DUSE_SSH=libssh2 -DBUILD_TESTS=ON -DEXPERIMENTAL_SHA256=ON -DOPENSSL_ROOT_DIR="$env:OPENSSL_ROOT_DIR" -DOPENSSL_CRYPTO_LIBRARY="$env:OPENSSL_CRYPTO_LIBRARY" -DOPENSSL_SSL_LIBRARY="$env:OPENSSL_SSL_LIBRARY" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=D:/libgit2/install -DLIBSSH2_INCLUDE_DIR=D:/libssh2/install/include -DLIBSSH2_LIBRARY=D:/libssh2/install/lib/libssh2.lib cmake --build build --parallel --target install .\build\libgit2_tests.exe From 572edfefdfd76964c91db034b5f2f4c778378f45 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:37:52 +0700 Subject: [PATCH 07/11] ci: run only Windows jobs for 1.11.1 --- .github/workflows/build_package.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index 50d3945..fc8f207 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -30,6 +30,7 @@ jobs: libgit2_version: ${{ env.LIBGIT2_VERSION }} build_libgit2_linux: + if: ${{ false }} runs-on: ubuntu-latest steps: - name: Check out repository @@ -42,6 +43,7 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_macos: + if: ${{ false }} runs-on: macos-latest steps: - name: Check out repository @@ -54,6 +56,7 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_ios: + if: ${{ false }} runs-on: macos-latest strategy: fail-fast: false @@ -83,6 +86,7 @@ jobs: artifact_name: cache-ios-${{ matrix.slice }} assemble_libgit2_ios: + if: ${{ false }} needs: [build_libgit2_ios] runs-on: macos-latest steps: @@ -143,6 +147,7 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_android_x86_64: + if: ${{ false }} runs-on: ubuntu-latest steps: - name: Check out repository @@ -157,6 +162,7 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} build_libgit2_android_other: + if: ${{ false }} runs-on: ubuntu-latest strategy: matrix: @@ -174,6 +180,7 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} run_linux_tests: + if: ${{ false }} needs: [generate_bindings, build_libgit2_linux] runs-on: ubuntu-latest steps: @@ -203,6 +210,7 @@ jobs: - run: flutter test -r expanded run_macos_tests: + if: ${{ false }} needs: [generate_bindings, build_libgit2_macos] runs-on: macos-latest steps: @@ -257,6 +265,7 @@ jobs: - run: flutter test -r expanded run_ios_tests: + if: ${{ false }} needs: [generate_bindings, assemble_libgit2_ios] runs-on: macos-latest timeout-minutes: 40 @@ -416,6 +425,7 @@ jobs: timestamp "Finished flutter test on iOS simulator" run_android_tests: + if: ${{ false }} needs: [generate_bindings, build_libgit2_android_x86_64] runs-on: ubuntu-latest steps: @@ -480,6 +490,7 @@ jobs: cd "$RUNNER_TEMP/git2dart_mobile_test" && flutter test integration_test/opts_bindings_integration_test.dart -d emulator-5554 -r expanded publish_package: + if: ${{ false }} needs: [run_linux_tests, run_macos_tests, run_windows_tests, run_ios_tests, run_android_tests, build_libgit2_android_other] runs-on: ubuntu-latest steps: From d6e81b4ada24fac89ae3ce671a7a963d1cdbb3fb Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:58:35 +0700 Subject: [PATCH 08/11] ci: use preinstalled OpenSSL in Windows tests for 1.11.1 --- .github/workflows/build_package.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index fc8f207..1bac0f4 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -248,9 +248,11 @@ jobs: path: ./lib/src/ name: cache-bindings - - name: Install windows dependencies + - name: Verify windows dependencies + shell: pwsh run: | - choco install openssl -y + openssl version + Get-Command openssl -ErrorAction Stop - name: download windows deps uses: actions/download-artifact@v4 From b9615696ea7aa2702cc52a16dbe56b547b49f2c6 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:59:39 +0700 Subject: [PATCH 09/11] ci: re-enable all platform jobs for 1.11.1 --- .github/workflows/build_package.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index 1bac0f4..ab275fe 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -30,7 +30,6 @@ jobs: libgit2_version: ${{ env.LIBGIT2_VERSION }} build_libgit2_linux: - if: ${{ false }} runs-on: ubuntu-latest steps: - name: Check out repository @@ -43,7 +42,6 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_macos: - if: ${{ false }} runs-on: macos-latest steps: - name: Check out repository @@ -56,7 +54,6 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_ios: - if: ${{ false }} runs-on: macos-latest strategy: fail-fast: false @@ -86,7 +83,6 @@ jobs: artifact_name: cache-ios-${{ matrix.slice }} assemble_libgit2_ios: - if: ${{ false }} needs: [build_libgit2_ios] runs-on: macos-latest steps: @@ -147,7 +143,6 @@ jobs: libssh2_version: ${{ env.LIBSSH2_VERSION }} build_libgit2_android_x86_64: - if: ${{ false }} runs-on: ubuntu-latest steps: - name: Check out repository @@ -162,7 +157,6 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} build_libgit2_android_other: - if: ${{ false }} runs-on: ubuntu-latest strategy: matrix: @@ -180,7 +174,6 @@ jobs: openssl_version: ${{ env.OPENSSL_VERSION }} run_linux_tests: - if: ${{ false }} needs: [generate_bindings, build_libgit2_linux] runs-on: ubuntu-latest steps: @@ -210,7 +203,6 @@ jobs: - run: flutter test -r expanded run_macos_tests: - if: ${{ false }} needs: [generate_bindings, build_libgit2_macos] runs-on: macos-latest steps: @@ -267,7 +259,6 @@ jobs: - run: flutter test -r expanded run_ios_tests: - if: ${{ false }} needs: [generate_bindings, assemble_libgit2_ios] runs-on: macos-latest timeout-minutes: 40 @@ -427,7 +418,6 @@ jobs: timestamp "Finished flutter test on iOS simulator" run_android_tests: - if: ${{ false }} needs: [generate_bindings, build_libgit2_android_x86_64] runs-on: ubuntu-latest steps: @@ -492,7 +482,6 @@ jobs: cd "$RUNNER_TEMP/git2dart_mobile_test" && flutter test integration_test/opts_bindings_integration_test.dart -d emulator-5554 -r expanded publish_package: - if: ${{ false }} needs: [run_linux_tests, run_macos_tests, run_windows_tests, run_ios_tests, run_android_tests, build_libgit2_android_other] runs-on: ubuntu-latest steps: From 7d9ac01cb33887701cad245bd1055c0754db63f5 Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 19:22:03 +0700 Subject: [PATCH 10/11] ci: update GitHub Actions versions for #18 --- .github/actions/build-android/action.yml | 10 +-- .github/actions/build-ios/action.yml | 8 +-- .github/actions/build-linux/action.yml | 6 +- .github/actions/build-macos/action.yml | 6 +- .github/actions/build-windows/action.yml | 8 +-- .github/actions/generate-bindings/action.yml | 4 +- .github/workflows/build_package.yml | 72 ++++++++++---------- 7 files changed, 57 insertions(+), 57 deletions(-) diff --git a/.github/actions/build-android/action.yml b/.github/actions/build-android/action.yml index 0d22ee3..8e46903 100644 --- a/.github/actions/build-android/action.yml +++ b/.github/actions/build-android/action.yml @@ -31,7 +31,7 @@ runs: - name: Set up Android NDK id: setup-ndk - uses: nttld/setup-ndk@v1 + uses: nttld/setup-ndk@v1.6.0 with: ndk-version: r26d add-to-path: false @@ -116,7 +116,7 @@ runs: } >> "$GITHUB_ENV" - name: Checkout OpenSSL - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: openssl/openssl ref: refs/tags/openssl-${{ inputs.openssl_version }} @@ -134,7 +134,7 @@ runs: make install_sw - name: Checkout libssh2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libssh2/libssh2 ref: refs/tags/libssh2-${{ inputs.libssh2_version }} @@ -160,7 +160,7 @@ runs: cmake --build bld --target install -- -j"$NCPU" - name: Checkout libgit2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -200,7 +200,7 @@ runs: cp "$LIBGIT2_INSTALL/lib/libgit2-experimental.so" "$OUTPUT_DIR/libgit2.so" - name: Upload Android artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-android-${{ inputs.architecture }} path: /tmp/export/** diff --git a/.github/actions/build-ios/action.yml b/.github/actions/build-ios/action.yml index 19d5c09..b88ef93 100644 --- a/.github/actions/build-ios/action.yml +++ b/.github/actions/build-ios/action.yml @@ -30,21 +30,21 @@ runs: using: composite steps: - name: Checkout OpenSSL - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: openssl/openssl ref: refs/tags/openssl-${{ inputs.openssl_version }} path: ./openssl - name: Checkout libssh2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libssh2/libssh2 ref: refs/tags/libssh2-${{ inputs.libssh2_version }} path: ./libssh2 - name: Checkout libgit2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -163,7 +163,7 @@ runs: cp -R "$libgit2_install/include/." "$output_dir/libgit2/include/" - name: Upload iOS slice - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: ${{ inputs.artifact_name }} path: /tmp/git2dart-ios-${{ inputs.ios_sdk }}-${{ inputs.architecture }}/export/** diff --git a/.github/actions/build-linux/action.yml b/.github/actions/build-linux/action.yml index 83ded40..1cca617 100644 --- a/.github/actions/build-linux/action.yml +++ b/.github/actions/build-linux/action.yml @@ -17,7 +17,7 @@ runs: mkdir /tmp/export - name: Checkout libssh2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libssh2/libssh2 ref: refs/tags/libssh2-${{ inputs.libssh2_version }} @@ -34,7 +34,7 @@ runs: cp /tmp/libssh2/install/lib/libssh2.so /tmp/export/libssh2.so - name: Checkout libgit2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -54,7 +54,7 @@ runs: run: cp /tmp/libgit2/install/lib/libgit2-experimental.so /tmp/export/libgit2.so - name: Cache git2 library - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-linux path: /tmp/export/** diff --git a/.github/actions/build-macos/action.yml b/.github/actions/build-macos/action.yml index 8c2d8fa..7a14ec5 100644 --- a/.github/actions/build-macos/action.yml +++ b/.github/actions/build-macos/action.yml @@ -15,7 +15,7 @@ runs: # run: brew install openssl cmake - name: Checkout libssh2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libssh2/libssh2 ref: refs/tags/libssh2-${{ inputs.libssh2_version }} @@ -35,7 +35,7 @@ runs: cmake --build . --target install - name: Checkout libgit2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -118,7 +118,7 @@ runs: otool -L export/libcrypto.3.dylib - name: Cache git2 library - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-macos path: export/** diff --git a/.github/actions/build-windows/action.yml b/.github/actions/build-windows/action.yml index 7dc32d3..ab4f160 100644 --- a/.github/actions/build-windows/action.yml +++ b/.github/actions/build-windows/action.yml @@ -11,7 +11,7 @@ runs: using: composite steps: - name: Set up MSVC - uses: ilammy/msvc-dev-cmd@v1 + uses: ilammy/msvc-dev-cmd@v1.13.0 - name: Verify dependencies shell: pwsh @@ -63,7 +63,7 @@ runs: Write-Host "OpenSSL ssl library: $opensslSslLibrary" - name: Checkout libssh2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libssh2/libssh2 ref: refs/tags/libssh2-${{ inputs.libssh2_version }} @@ -79,7 +79,7 @@ runs: copy D:/libssh2/install/bin/libssh2.dll D:/export/libssh2.dll - name: Checkout libgit2 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -98,7 +98,7 @@ runs: run: copy D:/libgit2/install/bin/git2-experimental.dll D:/export/libgit2.dll - name: Cache git2 library - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-windows path: D:/export/** diff --git a/.github/actions/generate-bindings/action.yml b/.github/actions/generate-bindings/action.yml index 403a752..ab1650d 100644 --- a/.github/actions/generate-bindings/action.yml +++ b/.github/actions/generate-bindings/action.yml @@ -7,7 +7,7 @@ inputs: runs: using: composite steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: repository: libgit2/libgit2 ref: refs/tags/v${{ inputs.libgit2_version }} @@ -34,7 +34,7 @@ runs: dart run ffigen --config ffigen.yaml --ignore-source-errors - name: Cache git2 library - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-bindings path: lib/src/bindings.dart diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index ab275fe..cfbeba2 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Linux artifacts uses: ./.github/actions/generate-bindings @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Linux artifacts uses: ./.github/actions/build-linux @@ -45,7 +45,7 @@ jobs: runs-on: macos-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build macOS artifacts uses: ./.github/actions/build-macos @@ -69,7 +69,7 @@ jobs: openssl_target: iossimulator-xcrun steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build iOS slice uses: ./.github/actions/build-ios @@ -87,7 +87,7 @@ jobs: runs-on: macos-latest steps: - name: Download iOS slices - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: pattern: cache-ios-* path: /tmp/git2dart-ios/slices @@ -125,7 +125,7 @@ jobs: -output "$output_dir/libgit2.xcframework" - name: Upload iOS XCFrameworks - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: cache-ios path: /tmp/git2dart-ios/export/** @@ -134,7 +134,7 @@ jobs: runs-on: windows-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Windows artifacts uses: ./.github/actions/build-windows @@ -146,7 +146,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Android x86_64 artifacts uses: ./.github/actions/build-android @@ -163,7 +163,7 @@ jobs: os: [armeabi-v7a, arm64-v8a, x86] steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Android artifacts uses: ./.github/actions/build-android @@ -178,16 +178,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings - name: download linux deps - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./linux name: cache-linux @@ -207,16 +207,16 @@ jobs: runs-on: macos-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings - name: download macos deps - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./macos name: cache-macos @@ -232,10 +232,10 @@ jobs: runs-on: windows-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings @@ -247,7 +247,7 @@ jobs: Get-Command openssl -ErrorAction Stop - name: download windows deps - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./windows name: cache-windows @@ -264,16 +264,16 @@ jobs: timeout-minutes: 40 steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings - name: download ios binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./ios name: cache-ios @@ -422,16 +422,16 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings - name: download android binaries x86_64 - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./android/src/main/jniLibs/x86_64 name: cache-android-x86_64 @@ -486,71 +486,71 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: download bindings - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./lib/src/ name: cache-bindings - name: download macos binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./macos name: cache-macos - name: download ios binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./ios name: cache-ios - name: download windows binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./windows name: cache-windows - name: download linux binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./linux name: cache-linux - name: download android binaries x86_64 - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./android/src/main/jniLibs/x86_64 name: cache-android-x86_64 - name: download android binaries arm64-v8a - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./android/src/main/jniLibs/arm64-v8a name: cache-android-arm64-v8a - name: download android binaries x86 - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./android/src/main/jniLibs/x86 name: cache-android-x86 - name: download android binaries armeabi-v7a - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: ./android/src/main/jniLibs/armeabi-v7a name: cache-android-armeabi-v7a - name: Zip package into cache if: ${{ github.event_name == 'pull_request' }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: release-package path: . - name: Publish package if: ${{ github.event_name != 'pull_request' }} - uses: k-paxian/dart-package-publisher@master + uses: k-paxian/dart-package-publisher@v.1.6.2 with: accessToken: ${{ secrets.PUB_DEV_PUBLISH_ACCESS_TOKEN }} refreshToken: ${{ secrets.PUB_DEV_PUBLISH_REFRESH_TOKEN }} From 62ae1c006be7cf8215451c6dbec5bac8cc84e5fc Mon Sep 17 00:00:00 2001 From: Viktor Borisov <4207463+vik-borisov@users.noreply.github.com> Date: Wed, 3 Jun 2026 19:30:13 +0700 Subject: [PATCH 11/11] ci: retry flaky iOS integration tests for #18 --- .github/workflows/build_package.yml | 47 ++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_package.yml b/.github/workflows/build_package.yml index cfbeba2..192f928 100644 --- a/.github/workflows/build_package.yml +++ b/.github/workflows/build_package.yml @@ -377,7 +377,7 @@ jobs: timestamp "Finished flutter build ios --simulator" - name: Run iOS integration tests - timeout-minutes: 10 + timeout-minutes: 20 shell: bash run: | set -euo pipefail @@ -398,23 +398,56 @@ jobs: seconds = Integer(ARGV.shift) command = ARGV + pid = nil begin Timeout.timeout(seconds) do - system(*command) + pid = Process.spawn(*command, pgroup: true) + Process.wait(pid) exit($?.exitstatus || 1) end rescue Timeout::Error + if pid + begin + Process.kill("TERM", -pid) + sleep 5 + Process.kill("KILL", -pid) + rescue Errno::ESRCH + end + end warn "::error::Timed out after #{seconds}s: #{command.join(" ")}" exit 124 end ' "$seconds" "$@" } - timestamp "Starting flutter test on iOS simulator" - run_with_timeout 600 flutter test \ - integration_test/opts_bindings_integration_test.dart \ - -d "$device_id" \ - -r expanded + run_ios_tests() { + local seconds="$1" + timestamp "Starting flutter test on iOS simulator with ${seconds}s timeout" + run_with_timeout "$seconds" flutter test \ + integration_test/opts_bindings_integration_test.dart \ + -d "$device_id" \ + -r expanded + } + + set +e + run_ios_tests 300 + status="$?" + set -e + + if [ "$status" -ne 0 ]; then + if [ "$status" -ne 124 ]; then + exit "$status" + fi + + timestamp "iOS test timed out; rebooting simulator before retry" + xcrun simctl shutdown "$device_id" || true + xcrun simctl boot "$device_id" || true + xcrun simctl bootstatus "$device_id" -b + flutter devices + + run_ios_tests 600 + fi + timestamp "Finished flutter test on iOS simulator" run_android_tests: