just curious how do people manage their web2py app (versioning, testing, deployment), trying to combine the tools to web2py project like dropbox, github, jenkins, etc.
e.g.
# dropbox git run in terminal
cd ~/dropbox/git/web2py/web2pyapp
cd web2pyapp
git add --all
git commit -m "Initial commit"
git push -u origin master
# jenkins jobs config.xml
<script>
pipeline {
agent any
stages {
stage('Remove App') {
steps {
sh '''
# Remove App
cd
rm -rf ~/web2py/applications/$app
'''
}
}
stage('Install App') {
steps {
sh '''
# Install App
cp -R ~/web2py/applications/welcome/ ~/web2py/applications/$app
rsync -zavr ~/dropbox/git/web2py/$app ~/web2py/applications/
rsync -zavur ~/dropbox/git/web2py/$app ~/web2py/applications/
'''
}
}
stage('Generate Data') {
steps {
sh '''
# Generate Data
'''
}
}
stage('Functional Test') {
steps {
sh '''
# Functional Test
python ~/web2py/web2py.py --nogui --no-banner -S $app -M -R ~/web2py/applications/$app/modules/$app\_$functional_test.py
'''
}
}
}
}
</script>
like the terminal step and jenkins job example above there is some question:
1. let say in controller i use crud (deprecated) and want to use sqlform.grid, after i change the code in controller and the changelog file, i want to change the web2pyapp versioning too from 0.0 (that use crud) into 0.1 (that use sqlform.grid), is it handle by git or should i define the separate folder for it ?
e.g. separate folder
~/dropbox/git/web2py/web2pyapp/0.0/
~/dropbox/git/web2py/web2pyapp/0.1/
2. which is better using the local installed (git, subversion, etc) or using provider (
github.com, gitlab, bitbucket, etc) ?
3. some is using ci (travis or circle), will try and learn it later, but for example above, jenkins job example is to deploying the app, run to insert dummy data and run web2py functional test, what is the difference with the shell script (in the past i use shell script to do the job)? or better using configuration management like puppet, ansible, etc to the the job (deploying, run functional test) ?
4. for testing, is there any testing that can be used for testing web2py app?
5. which is better to build it from container (docker, lxc, etc), vm (vagrant, virtualbox, vmware, etc) or local computer ?
6. any others hints or recommendation ?
thanks and best regards,
stifan