From b9f2da2782f8cbf23379c5742ec3365b92546b80 Mon Sep 17 00:00:00 2001 From: Josh Cotton Date: Tue, 29 Apr 2025 13:33:21 -0700 Subject: [PATCH] ci: add aarch64 Windows This also adds a new release artifact for aarch64 Windows. Closes #2943, Closes #3038 --- .github/workflows/ci.yml | 9 ++++++--- .github/workflows/release.yml | 10 +++++++--- CHANGELOG.md | 2 ++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e0938bc9..33622fca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -99,11 +99,14 @@ jobs: os: macos-latest rust: nightly - build: win-msvc - os: windows-2022 + os: windows-latest rust: nightly - build: win-gnu - os: windows-2022 + os: windows-latest rust: nightly-x86_64-gnu + - build: winaarch64-msvc + os: windows-11-arm + rust: nightly steps: - name: Checkout repository uses: actions/checkout@v4 @@ -177,7 +180,7 @@ jobs: # 'rg' binary (done in test-complete) with qemu, which is a pain and # doesn't really gain us much. If shell completion works in one place, # it probably works everywhere. - if: matrix.target == '' && matrix.os != 'windows-2022' + if: matrix.target == '' && !startsWith(matrix.os, 'windows') shell: bash run: ci/test-complete diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f6ea3d92..9a9cc038 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -122,6 +122,10 @@ jobs: os: windows-latest rust: nightly-x86_64-gnu target: x86_64-pc-windows-gnu + - build: winaarch64-msvc + os: windows-11-arm + rust: nightly + target: aarch64-pc-windows-msvc - build: win32-msvc os: windows-latest rust: nightly @@ -175,7 +179,7 @@ jobs: shell: bash run: | ${{ env.CARGO }} build --verbose --release --features pcre2 ${{ env.TARGET_FLAGS }} - if [ "${{ matrix.os }}" = "windows-latest" ]; then + if [[ "${{ matrix.os }}" == windows-* ]]; then bin="target/${{ matrix.target }}/release/rg.exe" else bin="target/${{ matrix.target }}/release/rg" @@ -258,7 +262,7 @@ jobs: - name: Build archive (Windows) shell: bash - if: matrix.os == 'windows-latest' + if: startsWith(matrix.os, 'windows') run: | 7z a "$ARCHIVE.zip" "$ARCHIVE" certutil -hashfile "$ARCHIVE.zip" SHA256 > "$ARCHIVE.zip.sha256" @@ -267,7 +271,7 @@ jobs: - name: Build archive (Unix) shell: bash - if: matrix.os != 'windows-latest' + if: ${{ !startsWith(matrix.os, 'windows') }} run: | tar czf "$ARCHIVE.tar.gz" "$ARCHIVE" shasum -a 256 "$ARCHIVE.tar.gz" > "$ARCHIVE.tar.gz.sha256" diff --git a/CHANGELOG.md b/CHANGELOG.md index 9601936b..7553cf77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,8 @@ Feature enhancements: Directories containing `.jj` are now treated as git repositories. * [FEATURE #2849](https://github.com/BurntSushi/ripgrep/pull/2849): When using multithreading, schedule files to search in order given on CLI. +* [FEATURE #2943](https://github.com/BurntSushi/ripgrep/issues/2943): + Add `aarch64` release artifacts for Windows. 14.1.1 (2024-09-08)