Skip to content

Commit 66f9bd3

Browse files
authored
feat: automated GitHub Release via CI (#1)
1 parent e5a2fad commit 66f9bd3

14 files changed

Lines changed: 245 additions & 49 deletions

File tree

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 2
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true
10+
11+
[*.{sh,swift}]
12+
indent_size = 4
13+
14+
[*.{xml,xsd,plist}]
15+
max_line_length = off

.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# in gh actions this is automatically true
2+
CI=false

.github/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Easily switch your macOS Apps icons
1+
Easily switch your macOS Apps icons

.github/workflows/release.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: "Release"
2+
3+
# Release a new version of the app as `.dmg` and `.zip` assets on GitHub Releases
4+
5+
on:
6+
push:
7+
tags:
8+
- "v*"
9+
10+
defaults:
11+
run:
12+
shell: bash
13+
14+
permissions:
15+
contents: write
16+
17+
env:
18+
ACTIONS_RUNNER_DEBUG: true
19+
20+
jobs:
21+
release:
22+
name: "Release"
23+
runs-on: "macos-26"
24+
steps:
25+
- name: "🔑 Checkout"
26+
uses: actions/checkout@v6
27+
28+
- name: "🐭 Setup Mise"
29+
uses: jdx/mise-action@main
30+
with:
31+
cache: true
32+
install: true
33+
experimental: true
34+
35+
- name: "Derive release version"
36+
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"
37+
38+
- name: "Check"
39+
run: just check
40+
41+
- name: "Build Release Artifacts"
42+
run: just package
43+
44+
- name: "Create GitHub Release"
45+
env:
46+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47+
TAG: ${{ github.ref_name }}
48+
run: |
49+
gh release \
50+
create "$TAG" \
51+
build/Macover-${VERSION}.dmg \
52+
build/Macover-${VERSION}.zip \
53+
--generate-notes

.github/workflows/verify.yml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
name: 'Verify'
2-
description: 'build, fmt, lint, and test the code'
1+
name: "Verify"
2+
3+
# Runs build, fmt, lint, and test the code
34

45
on:
56
push:
@@ -9,25 +10,25 @@ on:
910
defaults:
1011
run:
1112
shell: bash
12-
13+
1314
env:
1415
ACTIONS_RUNNER_DEBUG: true
15-
16+
1617
jobs:
1718
verify:
18-
name: 'Verify'
19-
runs-on: 'macos-26'
19+
name: "Verify"
20+
runs-on: "macos-26"
2021
steps:
21-
- name: '🔑 Checkout'
22+
- name: "🔑 Checkout"
2223
uses: actions/checkout@v6
2324

24-
- name: '🐭 Setup Mise'
25+
- name: "🐭 Setup Mise"
2526
uses: jdx/mise-action@main
2627
with:
2728
cache: true
2829
install: true
29-
log_level: 'debug'
30+
log_level: "debug"
3031
experimental: true
3132

32-
- name: 'Verify'
33+
- name: "Verify"
3334
run: just check

.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
_
2+
.DS_Store
3+
.env
4+
.env.*
5+
!.env.example
6+
17
# Build
28
build/
39
DerivedData/
@@ -17,3 +23,5 @@ Pods/
1723
# Fastlane (if used)
1824
fastlane/report.xml
1925
fastlane/Preview.html
26+
27+
.sourcekit-lsp

.swiftformat

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
--indent 4
12
--disable wrapMultilineStatementBraces

.swiftlint.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
disabled_rules:
2+
- trailing_comma

.zed/settings.json

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{
2+
"file_types": {
3+
"env": [".env", ".env.*"],
4+
"GitHub Actions": ["**/.github/workflows/*.yml", "**/.github/workflows/*.yaml"]
5+
},
6+
"hidden_files": [".DS_Store"],
7+
"file_scan_exclusions": [".git", ".DS_Store"],
8+
"formatter": {
9+
"language_server": {
10+
"name": "oxfmt"
11+
}
12+
},
13+
"format_on_save": "on",
14+
"code_actions_on_format": {
15+
"source.fixAll.oxc": true,
16+
"source.organizeImports.oxc": true
17+
},
18+
"languages": {
19+
"JSON": {
20+
"language_servers": ["oxfmt", "json-language-server"]
21+
},
22+
"JSONC": {
23+
"language_servers": ["oxfmt", "json-language-server"]
24+
},
25+
"YAML": {
26+
"language_servers": ["oxfmt"]
27+
},
28+
"GitHub Actions": {
29+
"language_servers": ["gh-actions-language-server", "oxfmt"]
30+
},
31+
"Markdown": {
32+
"language_servers": ["markdown-oxide", "oxfmt"]
33+
},
34+
"Swift": {
35+
"language_servers": ["sourcekit-lsp"],
36+
"formatter": {
37+
"external": {
38+
"command": "swiftformat",
39+
"arguments": ["--stdinpath", "{buffer_path}", "-"]
40+
}
41+
},
42+
"code_actions_on_format": {}
43+
},
44+
"Shell Script": {
45+
"language_servers": ["bash-language-server"],
46+
"formatter": "auto",
47+
"code_actions_on_format": {}
48+
},
49+
"Just": {
50+
"language_servers": ["just-lsp"],
51+
"formatter": "auto",
52+
"code_actions_on_format": {}
53+
}
54+
}
55+
}

Package.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// swift-tools-version: 6.0
2+
3+
import PackageDescription
4+
5+
let package = Package(
6+
name: "Macover",
7+
platforms: [.macOS(.v14)],
8+
targets: [
9+
.executableTarget(
10+
name: "Macover",
11+
path: "Sources",
12+
swiftSettings: [.swiftLanguageMode(.v6)],
13+
),
14+
],
15+
)

0 commit comments

Comments
 (0)