[PR #22] [MERGED] Add early arm64 CI builds and SwiftLint checks #22

Closed
opened 2026-10-23 23:01:12 +02:00 by jayanezj · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jayanezj/traccar-client-macos/pull/22
Author: @jayanezj
Created: 10/23/2026
Status: ✅ Merged
Merged: 10/23/2026
Merged by: @jayanezj

Base: main ← Head: feature/2-github-actions-ci


📝 Commits (3)

  • 744e349 ci: add early arm64 builds and SwiftLint checks (#2)
  • 86a6dd5 test(ci): verify hosted lint and build failures (#2)
  • a7435b4 Revert "test(ci): verify hosted lint and build failures (#2)"

📊 Changes

7 files changed (+312 additions, -1 deletions)

View changed files

➕ .github/workflows/ci.yml (+109 -0)
➕ .swiftlint.yml (+6 -0)
📝 README.md (+60 -1)
➕ scripts/check-local.sh (+55 -0)
➕ scripts/lint.sh (+38 -0)
➕ scripts/verify-build.sh (+17 -0)
➕ scripts/verify-toolchain.sh (+27 -0)

📄 Description

Refs #2.

Add early CI before location and transport development, with stable SwiftLint, Build (primary) and Build (macOS 15) checks. Build jobs compile Debug and Release using Xcode 27.1 on xcode-27 and Xcode 26.3 on macos-15, verify the toolchain, and check arm64 binaries, deployment target 15.0 and ad hoc signatures. The preview runner image is accepted for this stage; Xcode 27.1 itself is a final release.

Provide scripts/check-local.sh to run the same checks locally, with shared binary verification and README instructions. Pin Actions by full SHA and SwiftLint 0.65.1 by version and download checksum. Use read-only permissions, bounded timeouts, cancellation of superseded runs and seven-day failure diagnostics with local paths replaced.

Validation: the complete primary-profile check passed locally, including lint, Debug/Release and binary/signature checks. Isolated lint and compilation failures were rejected, and the original sources passed again. Workflow structure and shell syntax were checked. Hosted CI passed all three checks. Logs confirm Xcode 27.1/SDK 27.0 on macOS 27.0.1 and Xcode 26.3/SDK 26.2 on macOS 15.7.9; both compiled Debug/Release and verified binaries/signatures. All three checks are required by the active main ruleset, with the branch required to be up to date and no bypass.

Hosted validation covers the first four of the six original acceptance criteria:

  • Deliberate lint/build failure blocked merging and uploaded sanitized diagnostics.
  • Restoration returned all checks to green. The restored tree matches the initial implementation.
  • Real fork PR #23 required first-time contributor approval; its own run then passed all checks. Job logs confirm read-only Contents/Metadata permissions and Secret source: None.

The original six-item acceptance checklist is retained unchanged in #2: five criteria are verified, and the future-test criterion remains an ongoing obligation. Each subsequent feature PR must include meaningful tests and run them in CI, starting with #3. Keep #2 open until the first push run on main passes after integration; close it explicitly after verification.

There is no test target yet; configuration tests start in #3. CI does not replace manual permission, sleep or Gatekeeper checks. Dependency-Track is deferred until external application dependencies exist.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jayanezj/traccar-client-macos/pull/22 **Author:** [@jayanezj](https://github.com/jayanezj) **Created:** 10/23/2026 **Status:** ✅ Merged **Merged:** 10/23/2026 **Merged by:** [@jayanezj](https://github.com/jayanezj) **Base:** `main` ← **Head:** `feature/2-github-actions-ci` --- ### 📝 Commits (3) - [`744e349`](https://github.com/jayanezj/traccar-client-macos/commit/744e3494d9e89ec08581bb92610077f1ceb5ffe0) ci: add early arm64 builds and SwiftLint checks (#2) - [`86a6dd5`](https://github.com/jayanezj/traccar-client-macos/commit/86a6dd52bec4959d279d0edee96ff4b98c6a931b) test(ci): verify hosted lint and build failures (#2) - [`a7435b4`](https://github.com/jayanezj/traccar-client-macos/commit/a7435b48e85802888c686f1a989dc088152b727e) Revert "test(ci): verify hosted lint and build failures (#2)" ### 📊 Changes **7 files changed** (+312 additions, -1 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/ci.yml` (+109 -0) ➕ `.swiftlint.yml` (+6 -0) 📝 `README.md` (+60 -1) ➕ `scripts/check-local.sh` (+55 -0) ➕ `scripts/lint.sh` (+38 -0) ➕ `scripts/verify-build.sh` (+17 -0) ➕ `scripts/verify-toolchain.sh` (+27 -0) </details> ### 📄 Description Refs #2. Add early CI before location and transport development, with stable `SwiftLint`, `Build (primary)` and `Build (macOS 15)` checks. Build jobs compile Debug and Release using Xcode 27.1 on `xcode-27` and Xcode 26.3 on `macos-15`, verify the toolchain, and check arm64 binaries, deployment target 15.0 and ad hoc signatures. The preview runner image is accepted for this stage; Xcode 27.1 itself is a final release. Provide `scripts/check-local.sh` to run the same checks locally, with shared binary verification and README instructions. Pin Actions by full SHA and SwiftLint 0.65.1 by version and download checksum. Use read-only permissions, bounded timeouts, cancellation of superseded runs and seven-day failure diagnostics with local paths replaced. Validation: the complete primary-profile check passed locally, including lint, Debug/Release and binary/signature checks. Isolated lint and compilation failures were rejected, and the original sources passed again. Workflow structure and shell syntax were checked. [Hosted CI](https://github.com/jayanezj/traccar-client-macos/actions/runs/40003762893) passed all three checks. Logs confirm Xcode 27.1/SDK 27.0 on macOS 27.0.1 and Xcode 26.3/SDK 26.2 on macOS 15.7.9; both compiled Debug/Release and verified binaries/signatures. All three checks are required by the active main ruleset, with the branch required to be up to date and no bypass. Hosted validation covers the first four of the six original acceptance criteria: - [Deliberate lint/build failure](https://github.com/jayanezj/traccar-client-macos/actions/runs/40004871786) blocked merging and uploaded sanitized diagnostics. - [Restoration](https://github.com/jayanezj/traccar-client-macos/actions/runs/40005084222) returned all checks to green. The restored tree matches the initial implementation. - [Real fork PR #23](https://github.com/jayanezj/traccar-client-macos/pull/23) required first-time contributor approval; [its own run](https://github.com/jayanezj/traccar-client-macos/actions/runs/40005555955) then passed all checks. Job logs confirm read-only Contents/Metadata permissions and `Secret source: None`. The original six-item acceptance checklist is retained unchanged in #2: five criteria are verified, and the future-test criterion remains an ongoing obligation. Each subsequent feature PR must include meaningful tests and run them in CI, starting with #3. Keep #2 open until the first `push` run on `main` passes after integration; close it explicitly after verification. There is no test target yet; configuration tests start in #3. CI does not replace manual permission, sleep or Gatekeeper checks. Dependency-Track is deferred until external application dependencies exist. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
jayanezj added this to the M1 - Foundation and CI milestone 2026-10-23 23:01:12 +02:00
jayanezj added the pull-request label 2026-10-23 23:01:12 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jayanezj/traccar-client-macos#22