github-pages-deploy-action/src/lib.ts

65 lines
1.9 KiB
TypeScript
Raw Normal View History

import {exportVariable, info, setFailed} from '@actions/core'
2020-10-17 23:47:44 +08:00
import {ActionInterface, Status, NodeActionInterface} from './constants'
import {deploy, init} from './git'
import {
generateFolderPath,
checkParameters,
generateRepositoryPath,
generateTokenType
} from './util'
2020-03-09 21:19:16 +08:00
/** Initializes and runs the action.
*
* @param {object} configuration - The action configuration.
*/
export default async function run(
2020-10-17 23:47:44 +08:00
configuration: ActionInterface | NodeActionInterface
): Promise<void> {
let status: Status = Status.RUNNING
try {
info(`
GitHub Pages Deploy Action 🚀
🚀 Getting Started Guide: https://github.com/marketplace/actions/deploy-to-github-pages
2020-10-17 23:47:44 +08:00
Discussions / Q&A: https://github.com/JamesIves/github-pages-deploy-action/discussions
🔧 Report a Bug: https://github.com/JamesIves/github-pages-deploy-action/issues
2020-10-18 00:35:48 +08:00
📣 Maintained by James Ives: https://jamesiv.es
💖 Support: https://github.com/sponsors/JamesIves`)
2020-03-28 22:35:26 +08:00
info('Checking configuration and starting deployment… 🚦')
2020-10-17 23:47:44 +08:00
const settings: ActionInterface = {
...configuration
2020-03-05 21:19:45 +08:00
}
2020-10-17 23:47:44 +08:00
// Defines the repository/folder paths and token types.
// Also verifies that the action has all of the required parameters.
settings.folderPath = generateFolderPath(settings)
checkParameters(settings)
2020-03-05 21:19:45 +08:00
settings.repositoryPath = generateRepositoryPath(settings)
settings.tokenType = generateTokenType(settings)
2020-03-05 21:19:45 +08:00
await init(settings)
status = await deploy(settings)
} catch (error) {
status = Status.FAILED
2020-03-05 21:19:45 +08:00
setFailed(error.message)
} finally {
2020-03-28 22:35:26 +08:00
info(
`${
status === Status.FAILED
2020-05-25 00:25:43 +08:00
? 'Deployment failed! ❌'
: status === Status.SUCCESS
2020-05-25 00:25:43 +08:00
? 'Completed deployment successfully! ✅'
: 'There is nothing to commit. Exiting early… 📭'
}`
2020-03-05 21:19:45 +08:00
)
exportVariable('DEPLOYMENT_STATUS', status)
}
}