feat: make Persistence interface async #34
Workflow file for this run
This file contains hidden or 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: ci / nimble | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| checks: write | |
| on: | |
| pull_request: | |
| branches: [master] | |
| push: | |
| branches: [master] | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| name: 'test / ${{ matrix.os }}' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Run test suite | |
| run: nimble test | |
| build-linux: | |
| name: 'linux / ${{ matrix.task }}' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| task: | |
| - libsdsDynamicLinux | |
| - libsdsStaticLinux | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Build ${{ matrix.task }} | |
| run: nimble ${{ matrix.task }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.task }} | |
| path: build/ | |
| build-mac: | |
| name: 'macos / ${{ matrix.task }}' | |
| runs-on: macos-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| task: | |
| - libsdsDynamicMac | |
| - libsdsStaticMac | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Build ${{ matrix.task }} | |
| run: nimble ${{ matrix.task }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.task }} | |
| path: build/ | |
| build-windows: | |
| name: 'windows / ${{ matrix.task }}' | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| task: | |
| - libsdsDynamicWindows | |
| - libsdsStaticWindows | |
| steps: | |
| - name: Enable Git long paths | |
| run: git config --global core.longpaths true | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| # nim-lsquic (transitive dep via libp2p) contains boringssl submodule with | |
| # deeply-nested test paths. Nimble's temp dir path + those file names exceed | |
| # 260 chars even with core.longpaths=true because Nim's runtime doesn't use | |
| # the \\?\ extended-path prefix. Redirect TEMP/TMP to a short root dir so | |
| # nimble's working directory stays well under the limit. | |
| - name: Shorten TEMP path for nimble | |
| shell: pwsh | |
| run: | | |
| New-Item -ItemType Directory -Force -Path C:\T | Out-Null | |
| "TEMP=C:\T" >> $env:GITHUB_ENV | |
| "TMP=C:\T" >> $env:GITHUB_ENV | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Build ${{ matrix.task }} | |
| run: nimble ${{ matrix.task }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.task }} | |
| path: build/ | |
| build-ios: | |
| name: 'macos / libsdsIOS' | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: '16.2' | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Build libsdsIOS | |
| run: nimble libsdsIOS | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: libsdsIOS | |
| path: build/ | |
| build-android: | |
| name: 'linux / ${{ matrix.task }}' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| task: [libsdsAndroidArm64, libsdsAndroidAmd64, libsdsAndroidX86] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: jiro4989/setup-nim-action@v2 | |
| with: | |
| nim-version: '2.2.4' | |
| - uses: nttld/setup-ndk@v1 | |
| id: setup-ndk | |
| with: | |
| ndk-version: r27c | |
| - name: Install dependencies | |
| run: nimble setup -l | |
| - name: Build ${{ matrix.task }} | |
| env: | |
| ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }} | |
| run: nimble ${{ matrix.task }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.task }} | |
| path: build/ |