From a5e23aa6e469c24bbe205161699446d865ca8dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Lecrenier?= Date: Thu, 6 Oct 2022 10:13:50 +0200 Subject: [PATCH] Use Ubuntu 18.04 for all CI tasks that previously used Ubuntu 20.04 This is to prevent linking with a version of glibc that is too recent. With meilisearch v0.29.0 we inadvertently bumped the minimum supported glibc version to 2.29, which means it couldn't be run from Debian 10 (for example) anymore. By using Ubuntu 18.04, which uses glibc 2.27, we restore support for older Linux distros. --- .github/workflows/coverage.yml | 2 +- .github/workflows/flaky.yml | 2 +- .github/workflows/publish-binaries.yml | 6 +-- .github/workflows/publish-deb-brew-pkg.yml | 4 +- .github/workflows/rust.yml | 8 ++-- .../workflows/update-cargo-toml-version.yml | 47 +++++++++++++++++++ bors.toml | 2 +- 7 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/update-cargo-toml-version.yml diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index acef34200..3a10a611f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -6,7 +6,7 @@ name: Execute code coverage jobs: nightly-coverage: - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/flaky.yml b/.github/workflows/flaky.yml index 3ba11fe77..8d34da4d9 100644 --- a/.github/workflows/flaky.yml +++ b/.github/workflows/flaky.yml @@ -5,7 +5,7 @@ on: jobs: flaky: - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/publish-binaries.yml b/.github/workflows/publish-binaries.yml index a2f43d867..a9fa50223 100644 --- a/.github/workflows/publish-binaries.yml +++ b/.github/workflows/publish-binaries.yml @@ -35,9 +35,9 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04, macos-latest, windows-latest] + os: [ubuntu-18.04, macos-latest, windows-latest] include: - - os: ubuntu-20.04 + - os: ubuntu-18.04 artifact_name: meilisearch asset_name: meilisearch-linux-amd64 - os: macos-latest @@ -72,7 +72,7 @@ jobs: matrix: include: - build: aarch64 - os: ubuntu-20.04 + os: ubuntu-18.04 target: aarch64-unknown-linux-gnu linker: gcc-aarch64-linux-gnu use-cross: true diff --git a/.github/workflows/publish-deb-brew-pkg.yml b/.github/workflows/publish-deb-brew-pkg.yml index b5fc330bf..96bf9af9e 100644 --- a/.github/workflows/publish-deb-brew-pkg.yml +++ b/.github/workflows/publish-deb-brew-pkg.yml @@ -15,7 +15,7 @@ jobs: debian: name: Publish debian packagge - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 needs: check-version steps: - uses: hecrj/setup-rust-action@master @@ -38,7 +38,7 @@ jobs: homebrew: name: Bump Homebrew formula - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 needs: check-version steps: - name: Create PR to Homebrew diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 0e92fc706..266e306d6 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -21,7 +21,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-20.04, macos-latest, windows-latest] + os: [ubuntu-18.04, macos-latest, windows-latest] steps: - uses: actions/checkout@v3 - name: Cache dependencies @@ -40,7 +40,7 @@ jobs: # We run tests in debug also, to make sure that the debug_assertions are hit test-debug: name: Run tests in debug - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 @@ -58,7 +58,7 @@ jobs: clippy: name: Run Clippy - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 @@ -77,7 +77,7 @@ jobs: fmt: name: Run Rustfmt - runs-on: ubuntu-20.04 + runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/update-cargo-toml-version.yml b/.github/workflows/update-cargo-toml-version.yml new file mode 100644 index 000000000..faf3b0aaa --- /dev/null +++ b/.github/workflows/update-cargo-toml-version.yml @@ -0,0 +1,47 @@ +name: Update Meilisearch version in all Cargo.toml files + +on: + workflow_dispatch: + inputs: + new_version: + description: 'The new version (vX.Y.Z)' + required: true + +env: + NEW_VERSION: ${{ github.event.inputs.new_version }} + NEW_BRANCH: update-version-${{ github.event.inputs.new_version }} + GH_TOKEN: ${{ secrets.MEILI_BOT_GH_PAT }} + +jobs: + + update-version-cargo-toml: + name: Update version in Cargo.toml files + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v3 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + - name: Install sd + run: cargo install sd + - name: Update Cargo.toml files + run: | + raw_new_version=$(echo $NEW_VERSION | cut -d 'v' -f 2) + new_string="version = \"$raw_new_version\"" + sd '^version = "\d+.\d+.\w+"$' "$new_string" */Cargo.toml + - name: Build Meilisearch to update Cargo.lock + run: cargo build + - name: Commit and push the changes to the ${{ env.NEW_BRANCH }} branch + uses: EndBug/add-and-commit@v9 + with: + message: "Update version for the next release (${{ env.NEW_VERSION }}) in Cargo.toml files" + new_branch: ${{ env.NEW_BRANCH }} + - name: Create the PR pointing to ${{ github.ref_name }} + run: | + gh pr create \ + --title "Update version for the next release ($NEW_VERSION) in Cargo.toml files" \ + --body '⚠️ This PR is automatically generated. Check the new version is the expected one before merging.' \ + --label 'skip changelog' \ + --milestone $NEW_VERSION diff --git a/bors.toml b/bors.toml index a29054dfb..b357e8d61 100644 --- a/bors.toml +++ b/bors.toml @@ -1,5 +1,5 @@ status = [ - 'Tests on ubuntu-20.04', + 'Tests on ubuntu-18.04', 'Tests on macos-latest', 'Tests on windows-latest', 'Run Clippy',