-
Notifications
You must be signed in to change notification settings - Fork 5
Jenkins Job: Build and Deploy App remotely
-
Create a new job. The link to get started looks something like:
https://<jenkins-server>/view/All/newJob -
Type:
free style -
Check
This build is parameterized -
Add
String Parameter -
Name:
VM_EXTERNAL_IP -
Default Value:
<jenkins-server>* ex:jenkins-staging.shoppinpal.com -
Add
File Parameter -
Add
File Parameter -
File location:
<File Location>* ex:server/boot/seed.json -
Description:
<description> -
In
Source Code ManagementchooseGit -
Repository URL:
https://github.com/ShoppinPal/warehouse -
Branch:
develop -
Repository Browser select
AUTO -
In
Build TriggerscheckBuild when a change is pushed to GitHub -
In
BuildAdd Build StepExecute Shelland give following commands as build steps
echo $VM_EXTERNAL_IP
echo '{ "restApiRoot": "/api", "host": "0.0.0.0", "port": 3000, "aclErrorStatus": 403, "remoting": { "json": { "limit": "50mb" } }, "site": { "baseUrl":"https://'"${VM_EXTERNAL_IP}"'", "proxyUrl": "" }, "logging": { "console": true, "file": false }, "prestashop":{ "apiKey":"" }, "vend":{ "auth_endpoint":"https://secure.vendhq.com/connect", "token_service":".vendhq.com/api/1.0/token", "client_id":"", "client_secret":"" }, "ironWorkersUrl":"https://worker-aws-us-east-1.iron.io:443/2/projects//tasks/webhook", "ironWorkersOauthToken":"", "stockOrderWorker":"" }' > server/config.staging.json
cat server/config.staging.json
npm install npm install grunt-cli npm install bower node_modules/bower/bin/bower install
node_modules/grunt-cli/bin/grunt deploy:staging ```
- Add
Post-build ActionsasSend build artifacts over ssh - Select the ssh server where your application should be deployed
- Add Transfer Set
- Provide the following
Exec Commandsand leave rest of the fields empty:
```
cd /apps
if [ ! -d /apps/ ]; then
mkdir /apps
fi
if [ ! -d /apps/warehouse ]; then
git clone https://github.com/ShoppinPal/warehouse --branch develop
fi
cd /apps/warehouse
git pull
echo
-
Add Transfer Set
-
Select Source files given in
File Parameterand leave rest of fields empty. -
Add Transfer Set
-
Provide the following
Exec Commandsand leave rest of the fields empty:
cd /apps/warehouse if forever list | grep '/apps/warehouse/server/server.js' ; then echo 'stopping /apps/warehouse/server/server.js' forever stop /apps/warehouse/server/server.js fi if forever list | grep 'server/server.js' ; then echo 'stopping server/server.js' forever stop server/server.js
fi NODE_ENV=staging DEBUG=shoppinpal:,loopback:boot,boot:create-model-instances,boot:create-role-resolver,common:models:* forever start server/server.js
```
- Save Job
- Setup Jenkins on Google Cloud
- [Save a Jenkins VM image](Save a Jenkins VM image)
- [Load Jenkins Instance from Image](Load Jenkins Instance from Image)
- [Save a Node VM image](Save a Node VM image)
- [Load a VM from image](Load a VM from image)
- [Setup Nginx on Google Cloud](Setup Nginx on Google Cloud)
- Jenkins Job: Build and Deploy App locally
- Jenkins Job: Build and Deploy App remotely
- TBD