semantic-release plugin to publish a static site with 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. |
npm i -D @eclass/semantic-release-surgeThe plugin can be configured in the semantic-release configuration file:
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
"@eclass/semantic-release-surge"
]
}The surge authentication configuration is required and can be set via environment variables.
| Variable | Description |
|---|---|
SURGE_TOKEN |
Surge token created via surge token |
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 | 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 |
The build and asstes option can be used to skip the build assets:
{
"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:
{
"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"
}]
]
}{
"scripts": {
"build:client": "react-scripts build"
}
}