From 05a985cfe38b5ef4052ac627e1460b415affa97e Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Thu, 23 Jan 2025 20:15:21 +0100 Subject: [PATCH] feat(ci): Lint + Build for aarch64 (#1581) * feat(ci): Lint for aarch64 * feat(cd): Build release for aarch64 * doc: Update CHANGELOG --- .github/workflows/cd.yml | 15 +++++++++------ .github/workflows/ci.yml | 11 ++++++----- CHANGELOG.md | 1 + 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 1f58b6d87..2c363dad3 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -13,16 +13,19 @@ jobs: publish: name: Publishing ${{ matrix.build_target }} runs-on: ${{ matrix.os }} - container: ${{ matrix.container }} strategy: matrix: include: - build_target: linux-x86_64 os: ubuntu-latest - container: rust target: x86_64-unknown-linux-gnu features: '' dependencies: 'libpulse-dev libdbus-1-dev libncursesw5-dev libxcb-shape0-dev libxcb-xfixes0-dev' + - build_target: linux-arm64 + os: ubuntu-24.04-arm + target: aarch64-unknown-linux-gnu + features: '' + dependencies: 'libpulse-dev libdbus-1-dev libncursesw5-dev libxcb-shape0-dev libxcb-xfixes0-dev' - build_target: macos-x86_64 os: macos-latest target: x86_64-apple-darwin @@ -53,17 +56,17 @@ jobs: if: matrix.os == 'macos-latest' run: brew install portaudio pkg-config - name: Install Linux dependencies - if: startsWith(matrix.build_target, 'linux-') + if: runner.os == 'Linux' run: | - apt update - apt install -y ${{ matrix.dependencies }} + sudo apt update + sudo apt install -y ${{ matrix.dependencies }} - uses: actions/cache@v4 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/ ~/.cargo/git/db/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Running cargo build run: cargo build --release --target ${{ matrix.target }} ${{ matrix.features }} - name: Extract git tag diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b698a3e2d..02fb5d3de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,17 +19,18 @@ jobs: include: - build_target: linux-x86_64 os: ubuntu-latest - artifact_suffix: linux-x86_64 target: x86_64-unknown-linux-gnu features: '' + - build_target: linux-arm64 + os: ubuntu-24.04-arm + target: aarch64-unknown-linux-gnu + features: '' - build_target: macos-aarch64 os: macos-14 - artifact_suffix: macos-aarch64 target: aarch64-apple-darwin features: '--no-default-features --features rodio_backend,pancurses_backend' - build_target: windows-x86_64 os: windows-latest - artifact_suffix: windows-x86_64 target: x86_64-pc-windows-msvc features: '--no-default-features --features rodio_backend,pancurses_backend,share_clipboard,notify' steps: @@ -43,7 +44,7 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Install rustup if: runner.os != 'Windows' shell: bash @@ -58,7 +59,7 @@ jobs: if: matrix.os == 'macos-latest' run: brew install portaudio pkg-config - name: Install Linux dependencies - if: matrix.os == 'ubuntu-latest' + if: runner.os == 'Linux' run: | sudo apt update sudo apt install libpulse-dev libdbus-1-dev libncursesw5-dev libxcb-shape0-dev libxcb-xfixes0-dev diff --git a/CHANGELOG.md b/CHANGELOG.md index c7fbd99a4..94b7d8680 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - `%artist` formatting option to only show single artist name +- Build release for aarch64 on Linux ### Removed