diff --git a/.github/workflows/build-for-release.yml b/.github/workflows/build-for-release.yml
index d20c581..fd92a52 100644
--- a/.github/workflows/build-for-release.yml
+++ b/.github/workflows/build-for-release.yml
@@ -9,13 +9,19 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-latest, windows-latest]
+        os: [ubuntu-latest, windows-latest, macos-latest]
         include:
           - os: ubuntu-latest
             exe_suffix: ""
+            name_suffix: ""
             target: x86_64-unknown-linux-musl
+          - os: macos-latest
+            exe_suffix: ""
+            name_suffix: ".arm"
+            target: aarch64-apple-darwin
           - os: windows-latest
             exe_suffix: ".exe"
+            name_suffix: ".exe"
             target: x86_64-pc-windows-msvc
     steps:
       - uses: actions/checkout@v3
@@ -33,7 +39,7 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         with:
           asset_path: target/${{ matrix.target }}/release/dotter${{ matrix.exe_suffix }}
-          asset_name: dotter${{ matrix.exe_suffix }}
+          asset_name: dotter${{ matrix.name_suffix }}
           asset_content_type: application/octet-stream
           upload_url: ${{ github.event.release.upload_url }}
   build-completions:
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 8df5508..4c7084b 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -11,17 +11,23 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [windows-latest, ubuntu-latest, macos-latest]
+        build_name: [windows, ubuntu, macos-x86, macos-aarch64]
         include:
-          - os: windows-latest
+          - build_name: windows
+            os: windows-latest
             target: x86_64-pc-windows-msvc
-          - os: ubuntu-latest
+          - build_name: ubuntu
+            os: ubuntu-latest
             target: x86_64-unknown-linux-musl
-          - os: macos-latest
+          - build_name: macos-x86
+            os: macos-latest
             target: x86_64-apple-darwin
+          - build_name: macos-aarch64
+            os: macos-latest
+            target: aarch64-apple-darwin
       fail-fast: false
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: |
           rustup update
@@ -33,7 +39,7 @@ jobs:
     name: Check README
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: rustup update
       - name: Cache dependencies
@@ -45,7 +51,7 @@ jobs:
     name: Check cargo publish
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: rustup update
       - name: Cache dependencies
@@ -55,7 +61,7 @@ jobs:
     name: Test Suite
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: rustup update
       - name: Cache dependencies
@@ -65,7 +71,7 @@ jobs:
     name: Rustfmt
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: rustup update
       - run: rustup component add rustfmt
@@ -76,7 +82,7 @@ jobs:
     name: Clippy
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Update Rust
         run: rustup update
       - run: rustup component add clippy