Skip to content

Commit f25e026

Browse files
committed
ci: add gh cache to nix action
Change-Id: Ie564f9efc86b64f2582a2fdbf395a6dba84c3c81 Signed-off-by: Thomas Kosiewski <[email protected]>
1 parent a906e98 commit f25e026

File tree

5 files changed

+66
-28
lines changed

5 files changed

+66
-28
lines changed

.github/actions/nix-devshell/action.yaml

+22-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,28 @@ runs:
44
using: "composite"
55
steps:
66
- name: Setup Nix
7-
uses: DeterminateSystems/nix-installer-action@e50d5f73bfe71c2dd0aa4218de8f4afa59f8f81d # v16
7+
uses: nixbuild/nix-quick-install-action@5bb6a3b3abe66fd09bbf250dce8ada94f856a703 # v30
8+
9+
# - uses: nix-community/cache-nix-action@92aaf15ec4f2857ffed00023aecb6504bb4a5d3d # v6
10+
# with:
11+
# # restore and save a cache using this key
12+
# primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
13+
# # if there's no cache hit, restore a cache by this prefix
14+
# restore-prefixes-first-match: nix-${{ runner.os }}-
15+
# # collect garbage until Nix store size (in bytes) is at most this number
16+
# # before trying to save a new cache
17+
# # 1 GB = 1073741824 B
18+
# gc-max-store-size-linux: 1073741824
19+
# # do purge caches
20+
# purge: true
21+
# # purge all versions of the cache
22+
# purge-prefixes: nix-${{ runner.os }}-
23+
# # created more than this number of seconds ago relative to the start of the `Post Restore` phase
24+
# purge-created: 0
25+
# # except the version with the `primary-key`, if it exists
26+
# purge-primary-key: never
827

928
- name: Enter devshell
1029
uses: nicknovitski/nix-develop@9be7cfb4b10451d3390a75dc18ad0465bed4932a # v1.2.1
30+
with:
31+
arguments: ".#ci"

.ignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
!.github

Makefile

+8-4
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,18 @@ XCPROJECT := Coder\ Desktop/Coder\ Desktop.xcodeproj
1111
SCHEME := Coder\ Desktop
1212
SWIFT_VERSION := 6.0
1313

14-
CURRENT_PROJECT_VERSION:=$(shell git describe --match 'v[0-9]*' --dirty='.devel' --always --tags)
14+
ifndef CURRENT_PROJECT_VERSION
15+
CURRENT_PROJECT_VERSION:=$(shell git describe --match 'v[0-9]*' --dirty='.devel' --always --tags)
16+
endif
1517
ifeq ($(strip $(CURRENT_PROJECT_VERSION)),)
16-
$(error CURRENT_PROJECT_VERSION cannot be empty)
18+
$(error CURRENT_PROJECT_VERSION cannot be empty)
1719
endif
1820

19-
MARKETING_VERSION:=$(shell git describe --match 'v[0-9]*' --tags --abbrev=0 | sed 's/^v//' | sed 's/-.*$$//')
21+
ifndef MARKETING_VERSION
22+
MARKETING_VERSION:=$(shell git describe --match 'v[0-9]*' --tags --abbrev=0 | sed 's/^v//' | sed 's/-.*$$//')
23+
endif
2024
ifeq ($(strip $(MARKETING_VERSION)),)
21-
$(error MARKETING_VERSION cannot be empty)
25+
$(error MARKETING_VERSION cannot be empty)
2226
endif
2327

2428
# Define the keychain file name first

flake.lock

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+32-20
Original file line numberDiff line numberDiff line change
@@ -53,26 +53,38 @@
5353
{
5454
inherit formatter;
5555

56-
devShells.default = pkgs.mkShellNoCC {
57-
buildInputs = with pkgs; [
58-
actionlint
59-
apple-sdk_15
60-
clang
61-
coreutils
62-
create-dmg
63-
formatter
64-
gh
65-
gnumake
66-
protobuf_28
67-
protoc-gen-swift
68-
swiftformat
69-
swiftlint
70-
watchexec
71-
xcbeautify
72-
xcodegen
73-
xcpretty
74-
zizmor
75-
];
56+
devShells = rec {
57+
# Need to use a devshell for CI, as we want to reuse the already existing Xcode on the runner
58+
ci = pkgs.mkShellNoCC {
59+
buildInputs = with pkgs; [
60+
actionlint
61+
clang
62+
coreutils
63+
create-dmg
64+
gh
65+
git
66+
gnumake
67+
protobuf_28
68+
protoc-gen-swift
69+
swiftformat
70+
swiftlint
71+
xcbeautify
72+
xcodegen
73+
xcpretty
74+
zizmor
75+
];
76+
};
77+
78+
default = pkgs.mkShellNoCC {
79+
buildInputs =
80+
with pkgs;
81+
[
82+
apple-sdk_15
83+
formatter
84+
watchexec
85+
]
86+
++ ci.buildInputs;
87+
};
7688
};
7789
}
7890
);

0 commit comments

Comments
 (0)