I still have some other SmartOS related blog posts in the pipeline, but this one is quick and I know there's at least one person who will use these instructions soon.
I recently ironed out the details for a build environment for esky builds of salt 2014.7 release candidates. The bulk of the work is contained in this commit though a follow on commit further tightened up the build environment instructions so check that page if you want to set up a build environment yourself in a zone.
But if you want to be lazy, I've uploaded artifacts into Manta that will let you quickly do a new build. Since they're in my /public directory, anyone with a Manta account should be able to rapidly spin up a build environment to test either the latest code, or a patch that needs verification before merging.
The important artifacts are:
- A tarball of the final /opt/local tree after setting up the build environment:
- /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build- 20140821.tar.gz
- A tarball of the git repo to cut down on how much you'll need to pull down from github:
- A helper script to extract the first two into the correct locations:
To spin up a zone with the two smaller files as assets that runs where the big tarball is located, you can simply run:
mlogin -s /nahamu/public/salt/build/salt-2014.7-build-setup.sh -s /nahamu/public/salt/build/salt-git-tree-20140821.tar.gz /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build-20140821.tar.gz
So, let's say you're trying to test the fix for #14184.
Here's the simple way to spin a fresh esky for testing:
mlogin -s /nahamu/public/salt/build/salt-2014.7-build-setup.sh -s /nahamu/public/salt/build/salt-git-tree-20140821.tar.gz /nahamu/public/salt/build/salt-2014.7-pkgsrc-2014Q2-x86_64-build-20140821.tar.gz # wait for the session to connect. You'll then be root in the Manta zone . /assets/nahamu/public/salt/build/salt-2014.7-build-setup.sh # this will unpack the tarballs and do a git pull of the 2014.7 branch. #since I'm testing something that's not upstream yet, let's fetch that commit. git remote add cachedout git://github.com/cachedout/salt git fetch cachedout #before we can cherry-pick, tell git who you are so that it will be quiet git config user.name $MANTA_USER git config user.email $MANTA_USER@example.com git cherry-pick 83e5296c337ca41e72f92209523abec2a9d38508 # Run the build bash pkg/smartos/esky/build-tarball.sh # upload the resulting files into Manta so that you can get them later mmkdir -p /$MANTA_USER/public/salt/testing for file in dist/salt*; do mput -m /$MANTA_USER/public/salt/testing -f $file; done; #terminate the mlogin session exit # back on your regular system, get a list of URLs that you can paste somewhere mfind ~~/public/salt/testing | sed "s|^|$MANTA_URL|"
Find me on twitter or IRC if you have questions (I'm "nahamu" on Freenode. Look for me in #smartos or #salt with questions about this blog post.)