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-surge
The 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"
}
}