Skip to content

Commit

Permalink
build: do CFA releases (#63)
Browse files Browse the repository at this point in the history
* build: do CFA releases

* ci: persist bin output to workspace

* ci: attach workspace in cfa/release job

* ci: init git submodules in cfa/release job

* docs: remove manual release documentation

* chore: change version in package.json for CFA releases

* build: add missing CFA stuff

* build: fix yarn SNAFU

* ci: bump cache version to fix stale cache issue

* ci: add release jobs

* ci: add back filters
  • Loading branch information
dsanders11 committed Sep 11, 2023
1 parent 9c7bce8 commit 7456d63
Show file tree
Hide file tree
Showing 5 changed files with 2,111 additions and 87 deletions.
81 changes: 57 additions & 24 deletions .circleci/config.yml
Expand Up @@ -23,15 +23,15 @@ commands:
command: git submodule update --init --recursive
- restore_cache:
keys:
- v1-dependencies-{{ arch }}-{{ checksum "yarn.lock" }}
- v1-dependencies-{{ arch }}
- v2-dependencies-{{ arch }}-{{ checksum "yarn.lock" }}
- v2-dependencies-{{ arch }}
- run:
name: Install dependencies and build
command: npx yarn install --frozen-lockfile
- save_cache:
paths:
- node_modules
key: v1-dependencies-{{ arch }}-{{ checksum "yarn.lock" }}
key: v2-dependencies-{{ arch }}-{{ checksum "yarn.lock" }}

jobs:
test-linux:
Expand All @@ -45,8 +45,6 @@ jobs:
- install:
node-version: << parameters.node-version >>
- run: npx yarn test
- store_artifacts:
path: ./bin
test-mac:
macos:
xcode: 13.4.1
Expand All @@ -62,8 +60,6 @@ jobs:
name: Build alternative architecture
command: MINIDUMP_BUILD_ARCH=arm64 node build.js
- run: npx yarn test
- store_artifacts:
path: ./bin
test-windows:
executor:
name: win/default
Expand All @@ -76,8 +72,34 @@ jobs:
- install:
node-version: << parameters.node-version >>
- run: npx yarn test
release-linux:
docker:
- image: cimg/base:stable
steps:
- install:
node-version: 18.17.1
- store_artifacts:
path: ./bin
- persist_to_workspace:
root: .
paths:
- bin
release-mac:
macos:
xcode: 13.4.1
resource_class: macos.x86.medium.gen2
steps:
- install:
node-version: 18.17.1
- run:
name: Build alternative architecture
command: MINIDUMP_BUILD_ARCH=arm64 node build.js
- store_artifacts:
path: ./bin
- persist_to_workspace:
root: .
paths:
- bin

workflows:
test_and_release:
Expand All @@ -104,20 +126,31 @@ workflows:
# - 18.14.0
# - 16.19.0
# - 14.19.0
# TODO: uncomment this once CFA releases are set up
# - cfa/release:
# requires:
# - test-linux-18.14.0
# - test-linux-16.19.0
# - test-linux-14.19.0
# - test-mac-18.14.0
# - test-mac-16.19.0
# - test-mac-14.19.0
# - test-windows-18.14.0
# - test-windows-16.19.0
# - test-windows-14.19.0
# filters:
# branches:
# only:
# - main
# context: cfa-release
- release-linux:
filters:
branches:
only:
- main
- release-mac:
filters:
branches:
only:
- main
- cfa/release:
prepare:
- run:
name: Init git submodules
command: git submodule update --init --recursive
- attach_workspace:
at: .
requires:
- test-linux
- test-mac
# - test-windows
- release-linux
- release-mac
filters:
branches:
only:
- main
context: cfa-release
10 changes: 10 additions & 0 deletions .releaserc.json
@@ -0,0 +1,10 @@
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@continuous-auth/semantic-release-npm",
"@semantic-release/github"
],
"branches": [ "main" ]
}

28 changes: 0 additions & 28 deletions README.md
Expand Up @@ -37,31 +37,3 @@ Parse and dump the raw contents of the minidump as text using `minidump_dump`.

Dump debug symbols in minidump format from `binaryPath`, the `callback` would
be called with `callback(error, minidump)` upon completion.


## Releasing a new npm version
- Ensure you have checked out the `deps/breakpad` submodule. If you don't check
this out, then the source code of breakpad will not be included in the npm
package, and it will not be possible to build from source.
- Change the version in `package.json`, make a new git tag, and push it to GitHub.
- Wait until the CircleCI jobs on the main branch pass.
- The artifacts of the latest CircleCI jobs run should be downloaded and placed under the `bin` folder
(replacing the old folder if it exists).

The bin folder should look like the following.
```
bin
|_linux-x64
|_dump_syms
|_minidump_dump
|_minidump_stackwalk
|_darwin-x64
|_dump_syms
|_minidump_dump
|_minidump_stackwalk
```

- Then:
```
npm publish
```
3 changes: 2 additions & 1 deletion package.json
Expand Up @@ -2,7 +2,7 @@
"main": "./lib/minidump.js",
"name": "minidump",
"description": "Read and process minidump file",
"version": "0.25.0",
"version": "0.0.0-development",
"types": "index.d.ts",
"license": "MIT",
"repository": {
Expand All @@ -19,6 +19,7 @@
"test": "mocha test && standard"
},
"devDependencies": {
"@continuous-auth/semantic-release-npm": "^3.0.0",
"@electron/get": "^2.0.2",
"extract-zip": "^1.5.0",
"mocha": "^10.1.0",
Expand Down

0 comments on commit 7456d63

Please sign in to comment.