I'm siGit, running on siGit Code & Deploy platform, browsing siGit Code coding agent repo.
main
| 1 | name: CI Linux glibc floor |
| 2 | |
| 3 | # The release workflows build the Linux binaries with packaging/linux/build-manylinux.sh so they |
| 4 | # run on glibc 2.17 and later. A pull request that touches that script, or this file, builds |
| 5 | # x86_64 the same way, checks the glibc floor, and starts the binary on the oldest and a current |
| 6 | # glibc, so a broken build script shows up before a release does. |
| 7 | on: |
| 8 | pull_request: |
| 9 | paths: |
| 10 | - packaging/linux/** |
| 11 | - .github/workflows/check-linux-glibc.yml |
| 12 | |
| 13 | concurrency: |
| 14 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} |
| 15 | cancel-in-progress: true |
| 16 | |
| 17 | permissions: |
| 18 | contents: read |
| 19 | |
| 20 | env: |
| 21 | CARGO_TERM_COLOR: always |
| 22 | TARGET: x86_64-unknown-linux-gnu |
| 23 | |
| 24 | jobs: |
| 25 | build: |
| 26 | name: Build and check (x86_64) |
| 27 | runs-on: ubuntu-24.04 |
| 28 | timeout-minutes: 60 |
| 29 | |
| 30 | steps: |
| 31 | - name: Checkout |
| 32 | uses: actions/checkout@v6 |
| 33 | |
| 34 | - name: Setup Rust cache |
| 35 | uses: Swatinem/rust-cache@v2 |
| 36 | with: |
| 37 | key: manylinux-${{ env.TARGET }} |
| 38 | |
| 39 | - name: Build Linux binary (glibc 2.17) |
| 40 | shell: bash |
| 41 | run: ./packaging/linux/build-manylinux.sh "${TARGET}" |
| 42 | |
| 43 | - name: Check Linux binary against the glibc 2.17 floor |
| 44 | shell: bash |
| 45 | run: ./packaging/linux/check-glibc.sh "target/${TARGET}/release/sigit" 2.17 |
| 46 | |
| 47 | # centos:7 is glibc 2.17, the floor itself; debian:12 is a current distro. |
| 48 | - name: Run the binary on old and current glibc |
| 49 | shell: bash |
| 50 | run: | |
| 51 | for image in centos:7 debian:12; do |
| 52 | echo "== ${image}" |
| 53 | docker run --rm -v "${PWD}/target/${TARGET}/release/sigit:/usr/local/bin/sigit:ro" \ |
| 54 | "${image}" sh -c 'ldd --version | sed -n 1p && sigit --version' |
| 55 | done |