A grunt task for deploying Salesforce package, using JSforce's Metadata API feature. As it is implemented purely in Node.js, you do not have to setup Force.com Migration Tool (Ant, Java) anymore.
$ npm init
$ npm install grunt grunt-jsforce-deploy --save-dev
├── Gruntfile.js
├── package.json
└── pkg
├── classes
├── objects
├── package.xml
├── pages
└── staticresources
module.exports = function(grunt) {
grunt.loadNpmTasks("grunt-jsforce-deploy");
grunt.initConfig({
jsforce_deploy: {
pkg: {
expand: true,
cwd: ".",
src: [ "pkg/**" ]
},
options: {
username: process.env.SF_USERNAME,
password: process.env.SF_PASSWORD,
// loginUrl: "https://test.salesforce.com",
// pollTimeout: 120*1000, // set polling timeout to 120sec (default is 60sec)
// pollInterval: 10*1000, // set polling interval to 10sec (default is 5sec)
}
}
});
grunt.registerTask("deploy", [ "jsforce_deploy" ]);
};
$ SF_USERNAME=username@example.com SF_PASSWORD=yourpassword grunt deploy
or if you have foreman
installed, create .env
file with above credential information, and execute :
$ foreman run grunt deploy