Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V6 API #433

Merged
merged 40 commits into from
Apr 11, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
c31417e
temp
MarshallOfSound Feb 16, 2018
e032201
Start working in new package structure
MarshallOfSound Feb 18, 2018
c17a6bb
Example maker
MarshallOfSound Feb 18, 2018
7de5c07
All makers implemented and tests passing on darwin
MarshallOfSound Feb 19, 2018
c5617fd
Add v6 branches to travis config
MarshallOfSound Feb 19, 2018
bf0a3bd
Add v6 branches to appveyor config
MarshallOfSound Feb 19, 2018
c4213b8
Gitignore _old
MarshallOfSound Feb 19, 2018
935d46b
Remove FIXME comments
MarshallOfSound Feb 19, 2018
878ef65
Remove from CI branch whitelist
MarshallOfSound Feb 19, 2018
36f1cdf
Install bolt on docker
MarshallOfSound Feb 19, 2018
2721c47
Add to whitelist
MarshallOfSound Feb 19, 2018
6c45c53
Fix bolt usage on CI
MarshallOfSound Feb 19, 2018
406d78d
Run bolt build on CI
MarshallOfSound Feb 19, 2018
b7ca5c6
Fix tests on CI
MarshallOfSound Feb 19, 2018
34b2c60
Fix linting
MarshallOfSound Feb 19, 2018
1a3d124
Fix CI
MarshallOfSound Feb 19, 2018
1fef26e
Make publishers work and add specs
MarshallOfSound Feb 20, 2018
d34efb3
Docs template
MarshallOfSound Feb 21, 2018
07dd4ac
Initial docs
MarshallOfSound Feb 22, 2018
bcb37df
update plugin interface to support resolving strings
MarshallOfSound Mar 14, 2018
2374803
more docs
MarshallOfSound Mar 14, 2018
70fb767
add deps and scripts
MarshallOfSound Mar 14, 2018
5b86b64
send makeResults instead of flatten artifacts list
MarshallOfSound Mar 14, 2018
d17d02c
feat(publisher): Allow to configure channel for ERS (#456)
gossi Mar 24, 2018
71ca7e5
fix(publisher): call resolve() when electron-release-server publisher…
malept Apr 3, 2018
4644b85
Fix publisher tests
malept Apr 3, 2018
abd9b1a
Remove stray console statement
malept Apr 3, 2018
3263f85
v6-api is a PR now, no need to explicitly add to CI
malept Apr 3, 2018
976b670
Add top level license
MarshallOfSound Apr 8, 2018
75ad202
Change Maker/Publisher syntax so that they can be constructed with a …
MarshallOfSound Apr 8, 2018
2bb6222
Fix custom init
MarshallOfSound Apr 8, 2018
0cf132d
Add missing semi
MarshallOfSound Apr 8, 2018
f68c3a3
Use absolute path for custom init to avoid runnig npm link on windows
MarshallOfSound Apr 8, 2018
ac04cf9
Fix appx test reference to fixture key file
MarshallOfSound Apr 8, 2018
6c6c798
Remove shell completion support (#447)
malept Apr 8, 2018
2f614dc
install new beta tagged bolt on CI
MarshallOfSound Apr 11, 2018
3d27421
Fix testing snap building in Travis
malept Apr 11, 2018
74e160c
fix remove error
MarshallOfSound Apr 11, 2018
de2929c
Fix config passing in tests
MarshallOfSound Apr 11, 2018
1b924da
fix search order
MarshallOfSound Apr 11, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@ cache:
branches:
only:
- master
- v6

install:
- ps: Install-Product node $env:nodejs_version $env:platform
- set PATH=%APPDATA%\npm;%PATH%
- yarn
- npm i -g bolt@0.20.1
- if not exist "node_modules" mkdir node_modules
- ps: Remove-Item node_modules -Recurse -Force
- bolt
- bolt build
- ps: |
$wixToolsetBinPath = ";C:\Program Files (x86)\WiX Toolset v3.11\bin;"
$env:PATH = $env:PATH + $wixToolsetBinPath
Expand All @@ -27,6 +32,6 @@ install:
test_script:
- node --version
- yarn --version
- yarn test --installer=%node_installer%
- bolt ws test

build: off
17 changes: 17 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"sourceMaps": "inline",
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread"
],
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "6"
}
}
]
]
}
7 changes: 6 additions & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
"plugins": [
"mocha"
],
"env": {
"mocha": true
},
"rules": {
"consistent-return": 0,
"global-require": 0,
Expand All @@ -16,6 +19,8 @@
"mocha/no-exclusive-tests": "error",
"no-console": 0,
"no-throw-literal": 0,
"no-underscore-dangle": 0
"no-underscore-dangle": 0,
"class-methods-use-this": 0,
"no-confusing-arrow": 0
}
}
File renamed without changes.
File renamed without changes.
8 changes: 3 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
dist
node_modules
docs
.nyc_output
coverage
npm-debug.log
dist
yarn-error.log
packages/.old
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8.9.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary to be committed to the repo?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not required, but helpful for most macOS / *nix users who use nvm (it will auto-select the node version).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's kind of odd that it's Node 8 when the minimum version is Node 6.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Recommend Dev version, not version required for using

5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,10 @@ env:
branches:
only:
- master
- v6
- /^v\d+\.\d+\.\d+/
before_install: if [[ "$NODE_INSTALLER" = "yarn" ]]; then npm install -g yarn@0.23.3; fi
install:
- npm install
- npm update
- npm i -g bolt@0.20.1
script: ci/script.sh
after_success: ci/coverage.sh
notifications:
Expand Down
9 changes: 7 additions & 2 deletions ci/docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@

NODE_INSTALLER="$1"

if [[ "$NODE_INSTALLER" = "yarn" ]]; then npm i -g yarn; fi
npm i -g yarn
npm i -g bolt@0.20.1

cd /code

CI=true npm run test -- --installer=$NODE_INSTALLER
bolt
bolt build
bolt lint

DEBUG=electron-installer-snap:snapcraft CI=true bolt ws test -- --installer=$NODE_INSTALLER
5 changes: 4 additions & 1 deletion ci/script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@
if [[ "$TRAVIS_OS_NAME" = "linux" ]]; then
sudo docker run --privileged --interactive --tty --volume $(pwd):/code malept/electron-forge-container:latest /code/ci/docker.sh $NODE_INSTALLER
else
npm run test-coverage -- --installer=$NODE_INSTALLER
bolt
bolt build
bolt lint
bolt ws test
fi
2 changes: 2 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
_book
node_modules
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Electron Forge
38 changes: 38 additions & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Summary

* [Introduction](README.md)
* [Configuration](config.md)
* [CLI](cli.md)
* [Import](cli.md#import)
* [Init](cli.md#init)
* [Install](cli.md#install)
* [Lint](cli.md#lint)
* [Make](cli.md#make)
* [Package](cli.md#package)
* [Publish](cli.md#publish)
* [Start](cli.md#start)
* [API Docs](https://docs.electronforge.io)
* [Plugins](plugins.md)
* [Webpack](plugins.md#webpack)
* [Electron Compile](plugins.md#electron-compile)
* [Parcel](plugins.md#parcel)
* [Makers](makers.md)
* [AppX](makers.md#appx)
* [Deb](makers.md#deb)
* [DMG](makers.md#dmg)
* [Flatpak](makers.md#flatpak)
* [RPM](makers.md#rpm)
* [Snapcraft](makers.md#snap)
* [Squirrel.Windows](makers.md#squirrel)
* [Wix MSI](makers.md#wix)
* [Zip](makers.md#zip)
* Publishers
* [Electron Release Server](publisher/ers.md)
* [GitHub](publisher/github.md)
* [S3](publisher/s3.md)
* [Snapcraft](publisher/snap.md)
* [Extending Electron Forge](extend.md)
* [Writing Plugins](extend.md#writing-plugins)
* [Writing Makers](extend.md#writing-makers)
* [Writing Publishers](extend.md#writing-publishers)

11 changes: 11 additions & 0 deletions docs/book.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"plugins": ["theme-api", "panel", "collapsible-menu", "ace"],
"pluginsConfig": {
"theme-api": {
"theme": "dark"
}
},
"styles": {
"website": "styles/website.css"
}
}
118 changes: 118 additions & 0 deletions docs/cli.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Electron Forge CLI

{% method %}
## Installation

Electron forge's CLI is separate from the core module, to install it you will
have to use the `@electron-forge/cli` module from NPM.

{% sample lang="sh" %}
```sh
# NPM
npm i -g @electron-forge/cli

# Yarn
yarn global add @electron-forge/cli
```

{% endmethod %}

## Overview

At a high level the CLI module is just a proxy to the raw
[API](https://docs.electronforge.io) commands. Almost all the configuation
is still done in your [Forge Config](config), the CLI just provides a handy
way to trigger all the core functionality of Electron Forge (and you should
definitely use it).

## Commands

Please note these commands are sorted in alphabetical order, the ones you
probably need to care about are [`start`](#start), [`package`](#package),
[`make`](#make) and [`publish`](#publish).

### Import

Maps to `electronForge.import`, will attempt to take an existing Electron app
and make it Forge compatible. Normally this is just created a base forge config
and adding the required dependencies.

> There are no flags for the Import command

### Init

Maps to `electronForge.init`, will initialize a new Forge powered application in
the given directory (defaults to `.`).

Please note if you want to use a template it must be installed globally before
running the `init` command.

| Flag | Value | Description |
|------|-------|-------------|
| `--template` | Template Name | Name of the template to use to make this new app|
| `--copy-ci-files` | N/A | Set if you want to copy templated CI files for Travis CI and Appveyor |

### Install

Maps to `electronForge.install`, will attempt to install the Electron app
that is published at the given GitHub repository. This command is just a helper
for installing other applications quickly.

### Lint

Maps to `electronForge.lint`, will run the `lint` command that your package.json
exposes. If the exit code is 0 no output is shown, otherwise the error output
will be displayed.

> There are no flags for the Lint command

### Make

Maps to `electronForge.make`, will make distributables for your application
based on your forge config and the parameters you pass in.

| Flag | Value | Description |
|------|-------|-------------|
| `--arch` | Architecture E.g. `x64` | Target architecture to make for |
| `--platform` | Platform E.g. `mas` | Target platform to make for, please note you normally can only target platform X from platform X |
| `--targets` | Comma separated list of maker names | Override your make targets for this run |
| `--skip-package` | N/A | Set if you want to skip the packaging step, useful if you are running sequential makes and want to save time |

### Package

Maps to `electronForge.package`, will package your application into a platform
specific format and put the result in a folder. Please note that this does not
make a distributable format, to make proper distributables please use the
[`make`](#make) command.

| Flag | Value | Description |
|------|-------|-------------|
| `--arch` | Architecture E.g. `x64` | Target architecture to package for |
| `--platform` | Platform E.g. `mas` | Target platform to package for |

### Publish

Maps to `electronForge.publish`, will attempt to make the forge application
and then publish it to the publish targets defined in your forge config.

If you want to publish previously created `make` artifacts you will have to use
the `dry-run` options explained below.

| Flag | Value | Description |
|------|-------|-------------|
| `--tag` | Version | The version to publish these artifacts as |
| `--target` | Comma separated list of publisher names | Override your publish targets for this run |
| `--dry-run` | N/A | Triggers a publish dry run which saves state and doesn't upload anything |
| `--from-dry-run` | N/A | Attempts to publish artifacts from any dry runs saved on disk |

### Start

Maps to `electronForge.start`, will launch the Forge powered application in the
given directory (defaults to `.`).

| Flag | Value | Description |
|------|-------|-------------|
| `--app-path` | Path to your app from CWD | Override the path to the Electron app to launch (defaults to '.') |
| `--enable-logging` | N/A | Enable advanced logging. This will log internal Electron things |
| `--run-as-node` | N/A | Run the Electron app as a Node.JS script |
| `--inspect-electron` | N/A | Triggers inspect mode on Electron to allow debugging the main process |
Loading