skuid-grunt

Matt SonesMatt Sones 💎💎💎
edited June 25, 2020 in General
https://bitbucket.org/skuid/skuid-grunt

This will be amazing! Can't wait for the skuid page api.

Comments

  • Pat VachonPat Vachon 💎💎💎
    edited June 25, 2020
    Huh! What! When! DEEP DIVE?
  • Matt SonesMatt Sones 💎💎💎
    edited December 7, 2016
    exactly what I'm thinking!
  • Pat VachonPat Vachon 💎💎💎
    edited June 25, 2020
    Any plans for Gulp?
  • Pat VachonPat Vachon 💎💎💎
    edited June 25, 2020
    When is update 7 going to be released?
  • Barry SchnellBarry Schnell 💎💎
    edited March 2, 2017
    Just took a cursory look at this and this is going to be incredible!  I've been planning on implementing something at the page level for a long time but there was no straightforward way to do this without SOQL to the Page SObject itself.  

    An API, this is awesome!  And open source enabling contributions, even better!

    In my current build process, I use dmc (https://www.npmjs.com/package/dmc) to manage org credentials and nforce & nforce-metadata to interact with SFDC.  Need to take a closer look at skuid-grunt but adding dmc as the credentials backbone would be a great way to improve credential management and avoid hardcoding creds in config file.  Another interim option would be to use environment variables.

    Thank you!!
  • Zach McElrathZach McElrath Principal Software Engineer Chattanooga, TN 💎💎💎
    edited December 21, 2016
    dmc looks interesting. Environment variables would definitely be recommended right now, and this would be ideal for using skuid-grunt within a Continuous Integration process as you could set environment variables differently for each CI build / deployment task, e.g.

    var orgOptions = {
       clientId: process.env.SKUID_GRUNT_CLIENT_ID,
       clientSecret: process.env.SKUID_GRUNT_CLIENT_SECRET,
       username: process.env.SKUID_GRUNT_USERNAME,
       passowrd: process.env.SKUID_GRUNT_PASSWORD
    };
     
  • Zach McElrathZach McElrath Principal Software Engineer Chattanooga, TN 💎💎💎
    edited December 21, 2016
    We ran into some snags which has made Update 7 take longer than expected, but we're hoping for tomorrow afternoon.
  • Barry SchnellBarry Schnell 💎💎
    edited November 18, 2016
    Yep, exactly.  The environment variables would allow you to build grunt targets based on purpose rather than environment/purpose combo.

    dmc has worked out really well for me thus far, although I'll admit to just starting to make the jump over to it.

    dmc grew out of grunt-ant-sfdc (https://github.com/kevinohara80/grunt-ant-sfdc) which offered hardcoded and environment variable style configuration.
  • edited February 10, 2016
    Update 7 is available now from the Skuid Releases page.
    http://www.skuidify.com/skuidreleases
  • Matt SonesMatt Sones 💎💎💎
    edited February 10, 2017
    Ok, definitely feeling like this is awesome, but a bit over my head.

    Trying to set this up, and I think I've successfully installed node.js, grunt, and skuid-grunt... but not sure how to create the gruntfile. where do I get my client id and client secret?

    Can anyone point me to some resource which has detailed setup steps?
  • edited October 20, 2017
    Woah! This sounds incredible.
    Gonna be a whole lotta fun to learn and implement!
  • edited February 12, 2016
    Creating the Gruntfile is as easy creating a new file called Gruntfile.js and using the template from the README, which we updated yesterday with some additional information to help you get started.

    There is a link about how to setup a Connected App and get your Client ID and Client Secret. 
  • Matt SonesMatt Sones 💎💎💎
    edited December 7, 2016
  • Matt SonesMatt Sones 💎💎💎
    edited February 10, 2017
    Just got this working... and it's as amazing as expected.

    Thanks, Skuid!
  • Matt SonesMatt Sones 💎💎💎
    edited March 2, 2017
    OK, another question: do I have to install grunt and skuid-grunt to each project directory, or is there a way I can install grunt once and use it everywhere?
  • Zach McElrathZach McElrath Principal Software Engineer Chattanooga, TN 💎💎💎
    edited December 21, 2016
    Matt, it all depends on what you're trying to accomplish.

    If you've got multiple Force.com projects / orgs that you're managing, and you've got these projects in source control / you want to be able to pull down and push changes to Skuid Pages separately for each of these projects / orgs, then the recommended approach would be to install skuid-grunt in each project directory. It will be much easier to manage your Skuid Pages relative to / in context of each Force.com project / org separately, rather than trying to have just one directory with a complex Gruntfile with multiple pull and push targets for each org, where you'd have to do grunt like this: grunt pull:sandbox1, dumping pages into sandbox1/skuidpages or something like that. Managing Skuid Pages in context of a Force.com project / org is highly recommended.
  • Matt SonesMatt Sones 💎💎💎
    edited December 7, 2016
    Thanks, Zach.

    If I have a central developer org that I'm using to push skuid pages to multiple production orgs, how would you recommend that I structure it?
  • Barry SchnellBarry Schnell 💎💎
    edited November 18, 2016
    Hey Matt -

    Installing grunt and using grunt are two different things :)  

    You can install grunt globally (npm install -g grunt-cli) and then use it from any node js terminal/command window.

    Taking from what Zach was recommending, once grunt is installed, you'd want to have skuid-grunt installed on a per project basis.  When installing npm plug-ins, you can use the "--save-dev" option and this will automatically update your packages.json file.  You'll then commit your gruntfile.js and packages.json in to your VCS.

    In your particular situation, since you are only using a single DE Org and pushing to multiple prod orgs, I would do the following:

    1) Install grunt globally (or choose to just install in the current directory)
    2) Initialize a package file (npm init) in the project folder
    3) Create gruntfile.js by hand or use the grunt-init module (http://gruntjs.com/project-scaffolding)
    4) create a target for each of your deploy destinations

    If you had multiple orgs/multiple projects in VCS, you would repeat 2-4 for each project

    Note that when you pull down code from VCS to a new machine/folder, this will bring your packages.json and gruntfile.js with the pull.  From there, you can just run "npm install" and it will automatically install any node modules in the packages.json file.
  • edited May 6, 2016
    Matt- I will be updating the skuid-grunt repo with some example configurations sometime this morning. Keep an eye out. Hopefully it will help!
  • Matt SonesMatt Sones 💎💎💎
    edited December 7, 2016
    Thanks Barry and Ethan! Very helpful.
  • edited May 6, 2016
    For anyone looking to use gulp (as I have), just do the setup as normal, then import the task using gulp-grunt and run it as part of you gulp tasks
  • edited May 6, 2016
    For anyone interested in getting started with skuid-grunt, we've added a scaffolding project with a step-by-step walkthrough! 

    https://bitbucket.org/skuid/skuid-grunt-starter
  • edited May 6, 2016
    beautiful! works like a charm. Could there be a section in there on pushing/pulling component packs as well?

    edit: I love the environment variables. bravo!
  • edited May 6, 2016
    Thanks!

    Component Packs are just Static Resources which Salesforce provides deployment tools for. There are Grunt plugins and node modules for deploying your Metadata that could be worked into your build/deployment workflow.
  • edited May 6, 2016
    figures.. Alrighty then, thanks!
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!