https://github.com/eclass/semantic-release-surge
semantic-release plugin to publish a static site with surge.sh
https://github.com/eclass/semantic-release-surge
eclass semantic-release semantic-release-plugin surge-sh
Last synced: 6 months ago
JSON representation
semantic-release plugin to publish a static site with surge.sh
- Host: GitHub
- URL: https://github.com/eclass/semantic-release-surge
- Owner: eclass
- License: mit
- Created: 2019-03-13T20:39:24.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-09-04T10:57:10.000Z (6 months ago)
- Last Synced: 2025-09-04T12:35:15.584Z (6 months ago)
- Topics: eclass, semantic-release, semantic-release-plugin, surge-sh
- Language: JavaScript
- Size: 1.51 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @eclass/semantic-release-surge
[](https://www.npmjs.com/package/@eclass/semantic-release-surge)
[](https://travis-ci.org/eclass/semantic-release-surge)
[](https://www.npmjs.com/package/@eclass/semantic-release-surge)
[](https://david-dm.org/eclass/semantic-release-surge)
[](https://david-dm.org/eclass/semantic-release-surge#info=devDependencies)
[](https://codeclimate.com/github/eclass/semantic-release-surge/test_coverage)
[](https://codeclimate.com/github/eclass/semantic-release-surge/maintainability)
[](https://github.com/semantic-release/semantic-release)
> [semantic-release](https://github.com/semantic-release/semantic-release) plugin to publish a static site with [surge.sh](https://surge.sh)
| Step | Description |
|--------------------|--------------------|
| `verifyConditions` | Verify the presence of the `SURGE_TOKEN` environment variable and `SURGE_ALIAS` environment variable or `alias` option. |
| `prepare` | Build assets with a npm script. |
| `publish` | Upload assets to surge.sh. |
## Install
```bash
npm i -D @eclass/semantic-release-surge
```
## Usage
The plugin can be configured in the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/caribou/docs/usage/configuration.md#configuration):
```json
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
"@eclass/semantic-release-surge"
]
}
```
## Configuration
### Surge authentication
The surge authentication configuration is **required** and can be set via [environment variables](#environment-variables).
### Environment variables
| Variable | Description |
| ------------- | --------------------------------------------------------------------------------------- |
| `SURGE_TOKEN` | Surge token created via [surge token](https://surge.sh/help/integrating-with-travis-ci) |
| `SURGE_ALIAS` | Optional set surge alias. Example `my-awesome-project.surge.sh` |
| `SURGE_CNAME` | Optional set surge custom CNAME. Example `my-awesome-project.io` |
### Options
| Options | Description | Default |
|-------------------|------------------------------------------|---------|
| `alias` | Set de custom alias to surge.sh project. | null |
| `buildScriptName` | npm script to build assets. | `build` |
| `build` | Indicate if is requerid build assets. | `false` |
| `asstes` | Indicate the assets directory. | `dist` |
### Examples
The `build` and `asstes` option can be used to skip the build assets:
```json
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
["@semantic-release/exec", {
"publishCmd": "npm run build"
}],
["@eclass/semantic-release-surge", {
"alias": "my-awesome-project.surge.sh",
"assets": "build",
"build": false,
}]
]
}
```
Is posible specificate a custom npm script build and a custom CNAME:
```json
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
["@eclass/semantic-release-surge", {
"alias": "my-awesome-project.surge.sh",
"cname": "my-awesome-project.io",
"buildScriptName": "build:client"
}]
]
}
```
```json
{
"scripts": {
"build:client": "react-scripts build"
}
}
```
## License
[MIT](https://tldrlegal.com/license/mit-license)