Skip to content

Commit 48f508d

Browse files
toouryclaude
andcommitted
ci: add GitHub Actions workflow, SECURITY.md, and CODEOWNERS
Add CI pipeline that builds and runs unit tests on every PR and push to main. Includes shared Xcode scheme (required for headless builds), security disclosure policy via GitHub private reporting, and CODEOWNERS for reviewer auto-assignment. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 1d39653 commit 48f508d

5 files changed

Lines changed: 187 additions & 0 deletions

File tree

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# CODEOWNERS
2+
# https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
3+
#
4+
# Default reviewer for all pull requests.
5+
# Add directory-specific rules when collaborators join.
6+
7+
* @tooury

.github/workflows/ci.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
jobs:
14+
build-and-test:
15+
name: Build and Test
16+
runs-on: macos-15
17+
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
22+
- name: Select Xcode
23+
run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
24+
25+
- name: Show Xcode version
26+
run: xcodebuild -version
27+
28+
- name: Cache Swift packages
29+
uses: actions/cache@v4
30+
with:
31+
path: SourcePackages
32+
key: ${{ runner.os }}-spm-${{ hashFiles('Axon.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
33+
restore-keys: |
34+
${{ runner.os }}-spm-
35+
36+
- name: Resolve Swift packages
37+
run: |
38+
xcodebuild -resolvePackageDependencies \
39+
-project Axon.xcodeproj \
40+
-scheme Axon \
41+
-clonedSourcePackagesDirPath SourcePackages
42+
43+
- name: Build and test
44+
run: |
45+
xcodebuild test \
46+
-project Axon.xcodeproj \
47+
-scheme Axon \
48+
-destination 'platform=iOS Simulator,name=iPhone 16,OS=latest' \
49+
-clonedSourcePackagesDirPath SourcePackages \
50+
-resultBundlePath TestResults.xcresult \
51+
CODE_SIGNING_ALLOWED=NO \
52+
CODE_SIGNING_REQUIRED=NO \
53+
CODE_SIGN_IDENTITY="" \
54+
IPHONEOS_DEPLOYMENT_TARGET=17.0

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ DerivedData/
1212

1313
# Xcode Scheme Management
1414
*.xcscheme
15+
!Axon.xcodeproj/xcshareddata/xcschemes/*.xcscheme
1516

1617
# Xcode Quick Look
1718
*.xcscmblueprint
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1600"
4+
version = "1.7">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "E254ED952EB21B76000CDD9D"
18+
BuildableName = "Axon.app"
19+
BlueprintName = "Axon"
20+
ReferencedContainer = "container:Axon.xcodeproj">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
</BuildActionEntries>
24+
</BuildAction>
25+
<TestAction
26+
buildConfiguration = "Debug"
27+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29+
shouldUseLaunchSchemeArgsEnv = "YES">
30+
<Testables>
31+
<TestableReference
32+
skipped = "NO"
33+
parallelizable = "YES">
34+
<BuildableReference
35+
BuildableIdentifier = "primary"
36+
BlueprintIdentifier = "E254EDA72EB21B77000CDD9D"
37+
BuildableName = "AxonTests.xctest"
38+
BlueprintName = "AxonTests"
39+
ReferencedContainer = "container:Axon.xcodeproj">
40+
</BuildableReference>
41+
</TestableReference>
42+
</Testables>
43+
</TestAction>
44+
<LaunchAction
45+
buildConfiguration = "Debug"
46+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
47+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
48+
launchStyle = "0"
49+
useCustomWorkingDirectory = "NO"
50+
ignoresPersistentStateOnLaunch = "NO"
51+
debugDocumentVersioning = "YES"
52+
debugServiceExtension = "internal"
53+
allowLocationSimulation = "YES">
54+
<BuildableProductRunnable
55+
runnableDebuggingMode = "0">
56+
<BuildableReference
57+
BuildableIdentifier = "primary"
58+
BlueprintIdentifier = "E254ED952EB21B76000CDD9D"
59+
BuildableName = "Axon.app"
60+
BlueprintName = "Axon"
61+
ReferencedContainer = "container:Axon.xcodeproj">
62+
</BuildableReference>
63+
</BuildableProductRunnable>
64+
</LaunchAction>
65+
<ProfileAction
66+
buildConfiguration = "Release"
67+
shouldUseLaunchSchemeArgsEnv = "YES"
68+
savedToolIdentifier = ""
69+
useCustomWorkingDirectory = "NO"
70+
debugDocumentVersioning = "YES">
71+
<BuildableProductRunnable
72+
runnableDebuggingMode = "0">
73+
<BuildableReference
74+
BuildableIdentifier = "primary"
75+
BlueprintIdentifier = "E254ED952EB21B76000CDD9D"
76+
BuildableName = "Axon.app"
77+
BlueprintName = "Axon"
78+
ReferencedContainer = "container:Axon.xcodeproj">
79+
</BuildableReference>
80+
</BuildableProductRunnable>
81+
</ProfileAction>
82+
<AnalyzeAction
83+
buildConfiguration = "Debug">
84+
</AnalyzeAction>
85+
<ArchiveAction
86+
buildConfiguration = "Release"
87+
revealArchiveInOrganizer = "YES">
88+
</ArchiveAction>
89+
</Scheme>

SECURITY.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
Only the latest release of Axon receives security updates.
6+
7+
| Version | Supported |
8+
|---------------|-----------|
9+
| 1.x (latest) | Yes |
10+
| Older | No |
11+
12+
## Reporting a Vulnerability
13+
14+
Please do **not** open a public GitHub issue for security vulnerabilities.
15+
16+
To report a vulnerability, use [GitHub's private vulnerability reporting](https://github.com/theMethodolojeeOrg/Axon/security/advisories/new). This opens a private channel between you and the maintainer.
17+
18+
## What to Include
19+
20+
- A description of the vulnerability and its potential impact
21+
- Steps to reproduce or proof-of-concept
22+
- Any suggested mitigations (optional)
23+
24+
## Response Timeline
25+
26+
- **Acknowledgment:** within 7 days of receiving the report
27+
- **Assessment:** within 14 days
28+
- **Resolution:** depends on severity and complexity; critical issues are prioritized
29+
30+
## Scope
31+
32+
This policy covers the Axon iOS/macOS application source code in this repository. It does not cover third-party SDKs or services (Firebase, AI provider APIs, etc.).
33+
34+
## Disclosure
35+
36+
We follow a coordinated disclosure process. Please allow time to investigate and release a fix before making any public disclosure.

0 commit comments

Comments
 (0)