@pablozaiden/installer 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +45 -0
  2. package/package.json +4 -3
package/README.md CHANGED
@@ -26,6 +26,36 @@ Supported targets are:
26
26
 
27
27
  Tags may be provided as `1.2.3` or `v1.2.3`; release assets are always resolved with the `v` tag form published by GitHub releases.
28
28
 
29
+ ## Reusable build version action
30
+
31
+ Use the shared action to resolve the version embedded in a build:
32
+
33
+ ```yaml
34
+ - name: Resolve build version
35
+ id: version
36
+ uses: pablozaiden/installer/.github/actions/resolve-version@main
37
+ with:
38
+ mode: main
39
+ github_token: ${{ github.token }}
40
+ update_package_version: true
41
+ ```
42
+
43
+ The action exposes `steps.version.outputs.version` and
44
+ `steps.version.outputs.base_version`. In `release` mode, it removes the leading
45
+ `v` from `release_tag` (or `GITHUB_REF_NAME`). In `main` mode, it reads the
46
+ latest published release, increments its patch component, and appends the UTC
47
+ timestamp and seven-character commit SHA:
48
+
49
+ ```text
50
+ 8.5.9 -> 8.5.10-main-2026-07-11-14-48-abcdef1
51
+ ```
52
+
53
+ If the repository has no published release, the base version is `0.0.0`, so
54
+ the first main build is `0.0.1-main-<timestamp>-<short-sha>`. Set
55
+ `latest_release_tag` when the release lookup must be supplied explicitly.
56
+ Pin the action to an immutable commit in production workflows instead of
57
+ using `main`.
58
+
29
59
  ## Generic one-line installer
30
60
 
31
61
  Use the installer directly from this repository:
@@ -223,6 +253,9 @@ jobs:
223
253
  uses: pablozaiden/installer/.github/workflows/reusable-binary-release.yml@main
224
254
  permissions:
225
255
  contents: write
256
+ secrets:
257
+ macos_signing_certificate_base64: ${{ secrets.MACOS_SIGNING_CERTIFICATE_BASE64 }}
258
+ macos_signing_certificate_password: ${{ secrets.MACOS_SIGNING_CERTIFICATE_PASSWORD }}
226
259
  with:
227
260
  prebuild_command: bun run build
228
261
  binaries: |
@@ -236,6 +269,16 @@ jobs:
236
269
  ]
237
270
  ```
238
271
 
272
+ When both macOS signing secrets are provided, the workflow imports the
273
+ Base64-encoded PKCS#12 certificate into a temporary keychain on each macOS
274
+ runner and signs every macOS binary before staging it. The password is never
275
+ written to the workflow environment after keychain setup. If neither secret is
276
+ provided, macOS artifacts remain unsigned; providing only one secret fails the
277
+ macOS job. The PKCS#12 must contain the code-signing certificate and its private key.
278
+ The workflow trusts that certificate for code signing on the ephemeral runner;
279
+ self-signed certificates are supported when their certificate and private key
280
+ are supplied together.
281
+
239
282
  For a project with multiple binaries:
240
283
 
241
284
  ```yaml
@@ -290,6 +333,8 @@ Manual `workflow_dispatch` publishes with the `unstable` tag.
290
333
 
291
334
  ## Development
292
335
 
336
+ This package type-checks with TypeScript 7.
337
+
293
338
  ```bash
294
339
  bun install
295
340
  bun run build
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pablozaiden/installer",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Reusable GitHub release binary installer and updater utilities",
5
5
  "repository": {
6
6
  "type": "git",
@@ -33,9 +33,10 @@
33
33
  "test": "bun test"
34
34
  },
35
35
  "devDependencies": {
36
- "@types/bun": "latest"
36
+ "@types/bun": "^1.3.13",
37
+ "typescript": "^7.0.2"
37
38
  },
38
39
  "peerDependencies": {
39
- "typescript": "^5"
40
+ "typescript": "^7.0.0"
40
41
  }
41
42
  }