Development Procedures
From LNLEpicsWiki
Contents |
[edit] Users
- epics
- Controls administrator. Owns all files and areas for the production system. Extreme care has to be used when doing things as this user. Regular login is not advised, certain developers have ssh access to this account to be able to move files from their development area into the production area.
- giacchin
- Mauro - primary developer.
- devel
- Guest developer account. May not install stuff as user epics.
- spes
- SPES operator account. Login automatically starts the OPI session.
- svnowner
- Used for svnserve access to the Subversion repositories.
[edit] Procedures
[edit] Development
Development is done under the user account of the developer. Create any directury structure that you like, check out an existing application from the Subversion repository or create a new application using makeBaseApp.pl from EPICS base.
[edit] Deployment
Certain trusted users may install the results of their development into the production area. You are authorized for production system deployment, if you can ssh to the production system file server as user epics without having to give your password. (I.e. your public ssh key is listed in the ~/.ssh/authorized_keys file of that user.)
To prepare an application for deployment, do the following:
- Change the st.cmd of your IOC to source the file envPaths.link (instead of envPaths).
- In the directory containing the st.cmd copy the file envPaths to envPaths.prod. Change the definintion of TOP in envPaths.prod to the target location of your application.
- Create symbolic links on the development and the production machine:
- On the development system: envPaths.link -> envPaths
- On the production system: envPaths.link -> envPaths.prod
- Create (copy) the deploy script to the top directory of your application and adjust the settings for target directories and hosts.
The deploy script should look like this:
#!/bin/sh TARGET_DIR=<target location, e.g. /ioc/playground/ESSLAMB> TARGET_HOSTS="epics@localhost" DIRS="bin db dbd iocBoot medm protocols" for HOST in $TARGET_HOSTS; do rsync -rl --exclude=envPaths.link --exclude=*~ $DIRS $HOST:$TARGET_DIR done
If everything is set up correctly, you should be able to deploy your application to the production system using
./deploy
