docs(en): apply factual corrections matching the Russian README #19
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 | |
| on: | |
| push: | |
| branches: ["**"] | |
| tags: ["v*"] | |
| pull_request: | |
| branches: ["**"] | |
| jobs: | |
| # ---------------------------------------------------------------------------- | |
| # Plain build + tests on every push and PR. | |
| # ---------------------------------------------------------------------------- | |
| build-test: | |
| name: build & test (debian 13) | |
| runs-on: ubuntu-latest | |
| container: debian:13 | |
| steps: | |
| - name: install deps | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends \ | |
| build-essential cmake pkg-config git ca-certificates \ | |
| libsqlite3-dev libsodium-dev libmbedtls-dev libasio-dev \ | |
| nodejs npm python3 | |
| - uses: actions/checkout@v4 | |
| - name: build web bundle | |
| working-directory: web | |
| run: | | |
| npm ci | |
| npm run build | |
| bash embed.sh | |
| - run: cmake -B build -DCMAKE_BUILD_TYPE=Release | |
| - run: cmake --build build -j | |
| - run: ctest --test-dir build --output-on-failure | |
| - working-directory: web | |
| run: node --test tests/ | |
| # ---------------------------------------------------------------------------- | |
| # Server .deb packages (one per Debian release). Built via cpack -G DEB | |
| # inside the matching distro container so dependency soname pinning matches | |
| # the distro's libsodium / libmbedtls / libsqlite3 of that release. | |
| # CLI is excluded from the .deb (BUILD_CLI=OFF) — distributed separately as | |
| # a musl-static binary by `release-linux-cli`. | |
| # ---------------------------------------------------------------------------- | |
| release-linux-deb: | |
| name: release server .deb (debian ${{ matrix.debian }}) | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| needs: build-test | |
| runs-on: ubuntu-latest | |
| container: debian:${{ matrix.debian }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| debian: ["12", "13"] | |
| env: | |
| APP_VERSION: ${{ github.ref_name }} | |
| steps: | |
| - name: install deps | |
| run: | | |
| apt-get update | |
| apt-get install -y --no-install-recommends \ | |
| build-essential cmake pkg-config git ca-certificates \ | |
| dpkg-dev file \ | |
| libsqlite3-dev libsodium-dev libmbedtls-dev libasio-dev \ | |
| nodejs npm python3 | |
| - uses: actions/checkout@v4 | |
| - name: build web bundle | |
| working-directory: web | |
| env: | |
| APP_VERSION: ${{ github.ref_name }} | |
| run: | | |
| npm ci | |
| npm run build | |
| bash embed.sh | |
| - name: configure & build (server only) | |
| run: | | |
| cmake -B build -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_SERVER=ON -DBUILD_CLI=OFF | |
| cmake --build build -j | |
| - name: cpack -> .deb | |
| working-directory: build | |
| run: | | |
| cpack -G DEB | |
| # Tag the file with the distro release for clarity in the GH release. | |
| for f in *.deb; do | |
| mv "$f" "${f%.deb}-debian${{ matrix.debian }}.deb" | |
| done | |
| ls -la *.deb | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: server-deb-debian${{ matrix.debian }} | |
| path: build/*-debian${{ matrix.debian }}.deb | |
| # ---------------------------------------------------------------------------- | |
| # Standalone musl-static `blin` for Linux. Built in Alpine so the result is | |
| # a single self-contained binary that runs on any glibc/musl distro. | |
| # ---------------------------------------------------------------------------- | |
| release-linux-cli: | |
| name: release blin (linux musl static) | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| needs: build-test | |
| runs-on: ubuntu-latest | |
| container: alpine:latest | |
| env: | |
| APP_VERSION: ${{ github.ref_name }} | |
| steps: | |
| - name: install deps | |
| run: | | |
| apk add --no-cache \ | |
| build-base cmake pkgconfig git linux-headers \ | |
| libsodium-dev libsodium-static \ | |
| mbedtls-dev mbedtls-static | |
| - uses: actions/checkout@v4 | |
| - name: configure & build | |
| run: | | |
| cmake -B build -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_SERVER=OFF -DBUILD_CLI=ON -DBLIN_STATIC=ON | |
| cmake --build build -j | |
| file build/cli/blin || true | |
| ldd build/cli/blin || true | |
| - name: stage release | |
| run: | | |
| STAGE="blin-${GITHUB_REF_NAME}-linux-x86_64-static" | |
| mkdir -p "$STAGE" | |
| cp build/cli/blin "$STAGE/" | |
| cp LICENSE README.md README_ru.md "$STAGE/" 2>/dev/null || true | |
| tar czf "${STAGE}.tar.gz" "$STAGE" | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: blin-linux-static | |
| path: blin-*-linux-x86_64-static.tar.gz | |
| # ---------------------------------------------------------------------------- | |
| # Windows CLI build via vcpkg. Server is not built on Windows — only blin.exe. | |
| # ---------------------------------------------------------------------------- | |
| release-windows: | |
| name: release blin (windows) | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| needs: build-test | |
| runs-on: windows-latest | |
| env: | |
| APP_VERSION: ${{ github.ref_name }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: vcpkg deps | |
| run: | | |
| vcpkg install libsodium:x64-windows-static-md mbedtls:x64-windows-static-md | |
| shell: pwsh | |
| - name: configure | |
| run: | | |
| cmake -B build -DCMAKE_BUILD_TYPE=Release ` | |
| -DBUILD_SERVER=OFF -DBUILD_CLI=ON ` | |
| -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" ` | |
| -DVCPKG_TARGET_TRIPLET=x64-windows-static-md | |
| shell: pwsh | |
| - name: build | |
| run: cmake --build build --config Release -j | |
| - name: stage release | |
| run: | | |
| $stage = "blin-$($env:GITHUB_REF_NAME)-windows-x86_64" | |
| New-Item -ItemType Directory -Path $stage | Out-Null | |
| Copy-Item build\cli\Release\blin.exe -Destination $stage\ | |
| if (Test-Path LICENSE) { Copy-Item LICENSE $stage\ } | |
| if (Test-Path README.md) { Copy-Item README.md $stage\ } | |
| if (Test-Path README_ru.md) { Copy-Item README_ru.md $stage\ } | |
| Compress-Archive -Path $stage -DestinationPath "$stage.zip" | |
| shell: pwsh | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: blin-windows | |
| path: blin-*-windows-*.zip | |
| # ---------------------------------------------------------------------------- | |
| # Gather all artifacts and attach them to the GitHub Release for the tag. | |
| # ---------------------------------------------------------------------------- | |
| publish-release: | |
| name: publish github release | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| needs: [release-linux-deb, release-linux-cli, release-windows] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| path: dist | |
| - name: flatten | |
| run: | | |
| mkdir -p out | |
| find dist -type f \ | |
| \( -name '*.deb' -o -name '*.tar.gz' -o -name '*.zip' \) \ | |
| -exec cp {} out/ \; | |
| ls -la out | |
| - uses: softprops/action-gh-release@v2 | |
| with: | |
| files: out/* | |
| generate_release_notes: true |