Skip to content

atjason/deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

中文版说明

What's This?

Web service responses to GitHub Webhook.

Preconditions

This is not a Hello Word teaching example, but an actual project that I am using myself. Suppose you already know the following techniques or meet their conditions:

  • Have a server of your own
  • Could configure the domain name
  • Could configure nginx or other web server to forward the web service to the node service
  • Could create shell script
  • Know about node, koa
  • Know about Webhook
  • Know about SMTP

Features

  • After run node lib/index.js, a service that responds to GitHub Webhook is provided on port 3030.
  • Internally call the actual working shell script (you need to write it yourself) via exec
  • Send email for the result of script.

Configuration

Both are located in the config directory, refer to *_demo.json, add a version without _demo

config.json

You can create a corresponding configuration for each warehouse and branch:

{
  "webhook-test_master": { // RepositoryName_BranchName
    "secret": "GitHub_Webhook_secret",
    "cwd": "/home/jason/testapi/", // script execution directory
    "command": "/bin/bash ./deploy.sh", // Really work shell script
    "env": { // some environment variables
      "DEBUG": "s:*"
    }
  }
}

security.json

Currently, the SMTP configuration information is mainly stored for sending notification emails:

{
  "mailConfig": {
    "host": "email-smtp.us-west-2.amazonaws.com",
    "port": "465",
    "user": "user123",
    "password": "password123",
    "from": "from@gmail.com",
    "to": "to@gmail.com"
  }
}

Tips

For GitHub Webhook, remember to generate a secret and select the json format.

For shell scripts warn/error, which is not important, can be transferred from stderr to stdout via 2>&1.

For the mail service, I'm using Amazon SES. Everything is going well with 200 free mail quotas per day.

If you have a problem, ask Google and yourself; It works fine in my side.

About

Used to deploy project, includes webhooks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published