Release processs automation investigation - xcat2/xcat-core GitHub Wiki
This documentation describes to automate some of the release process steps to reduce the manual work when xCAT is released.
When we release candidate build, generally we do preparation work, then run the test, if the test passes, we update some documentation to finish the release process. The automation process will have 2 parts. One is before the test, the other one is after the test. So, the new release process have following steps.
Name: pre_release
Usage: ./pre_release
Flow:
1. Prompt to ask user to input the release version <release_number>
2. Prompt to ask user to confirm Y/N?
3. If no, exit, if yes, go ahead to modify the release file (/xcat-core/docs/source/conf.py)
4. Commit the change? Y/N
5. If no, exit, if yes, go ahead to commit the change.
6. end
Name:go_release
Usage: ./go_release
Flow:
1. Prompt to ask user to input the release number
2. Prompt to ask user to confirm Y/N?
3. If no, exit, if yes, go ahead
4. Prompt to modify xcat.org download.html (Y/N/E)
Y: modify xcat.org, go ahead
N: not modify xcat.org, go ahead
E: exit
5. Prompt to modify xcat.org index.html (Y/N/E)
Y: modify xcat.org, go ahead
N: not modify xcat.org, go ahead
E: exit
6. Display the change and prompt to confirm the commit Y/N/E?
Y: commit
N: not commit, go ahead
E: exit
7. Prompt to upload build to xcat.org (debug mode /upload mode/Exit)
Debug mode: gives out debug information
Upload mode: upload the build to xcat.org
Exit:exit
8. Go back to step 7? Y/N ?
Y: got back to 7
N: go ahead
E: exit
9. Prompt to link xcat-dep tar ball (Y/N/E)
Y: find the link and gives out the message. Is this correct (Y/N)
Y:confirm and go ahead.
N:go back to 9.
N: go ahead
E: exit
10. bump version in xcat-core (Y/N/E)
Y: update xcat version (git)
N: go ahead
E: exit
11. Edit README.rst (Y/N/E)
Y: update README.rst (git)
N: go ahead
E: exit
12. tag branch (Y/N/E)
Y: tag (git)
N: go ahead
E: exit
13. Sync xcat.org from master branch to stable branch
Y: sync (git)
N: go ahead
E: exit
14. Update xCAT Offical Portal server to obtain the latest pages.
Y: get stable branch (git)
N: go ahead
E: exit
15. Run process on https://github.com/xcat2/xcat-core/releases/new
Y: run process on release page (restapi)
N: go ahead
E: exit
16. Edit the sidebar News in the Wiki on xCAT github, to add a new entry for current release.
Y: edit page (restapi)
N: go ahead
E: exit
17. end
[root@nn release]# cat prebuild
#Before do candidate build, update xCAT release information.
#git checkout <new_branch>
#sed -i s/$new_release/$old_release/g docs/source/conf.py
#git add docs/source/conf.py
(rewrite once and git checkin once)
#add new lines to docs/source/overview/xcat2_release.rst
#git add docs/source/overview/xcat2_release.rst
#git commit docs/source/conf.py -m "update for xCAT 2.x.x release "
[root@nn release]# cat afterbuild
#Section 1
#To update index and download page in xcat.org
# git checkout <new_branch>
# sed -i s/$current_release/$new_release/g download.html
# sed -i s/$old_release/$current_release/g download.html
# add one line for the next release in about line 43 in index.html
# git add download.html index.html
# git commit download.html index.html -m "update for xCAT 2.x release "
#Section 2
#To promote xCAT GA code to xcat.org
#ssh xcat.org -l xcat
#cd /var/www/xcat.org
//Note: 2.x is current release version
#promote_build.py --type=snap $current_build --link_latest --force
# cd /var/www/xcat.org/files/xcat/xcat-dep/2.x_Linux/
#find the latest xcat-dep package which has been verified
# ln -s xcat-dep-201707281008.tar.bz2 xcat-dep-$current_release-linux.tar.bz2
#cd /var/www/xcat.org/files/xcat/xcat-dep/2.x_Ubuntu/
#ln -s xcat-dep-ubuntu-201707281008.tar.bz2 xcat-dep-2.13.8-ubuntu.tar.bz2
## Bump version
#git checkout <new branch>
#edit version
#Edit README.rst (link to https://github.com/xcat2/xcat-core/blob/master/README.rst, modify README.rst :
1. latest
2. stable
3. refer to branch https://readthedocs.org/projects/xcat-docs/versions/
)
#git add Version README.rst -m "update for xCAT XXX release"
#git commit
##tag
#git checkout 2.14
#git pull upstream 2.14
#git push origin 2.14
#git tag -a 2.14.<x> -m 'xCAT 2.14.<x> release' -f
#git push --tags origin 2.14 -f
#git push --tags upstream 2.14 -f
#git ls-remote --tags ./. # list tags in current repo
#git ls-remote --tags # list tags in remote repo
[root@server]#ssh 10.3.5.10 -l root
[root@ 10.3.5.10]#ssh xcat.org -l xcat
xcat@sense: cd /var/www/xcat.org
xcat@sense: git checkout stable
xcat@sense: git pull
10. Run process on https://github.com/xcat2/xcat-core/releases/new
open page https://github.com/xcat2/xcat-core/releases/new
Edit the page. Taking 2.13.8 for example:
Enter 2.13.8 to Tag version input box
Choose 2.13 in @ target dorp-down box
Enter 2.13.8 to release title input box
Enter some description in Describe this release input box. please refer to 2.13.8 release page
This is the release process which can be referenced.
https://github.ibm.com/xcat2/team_process/blob/master/FVT/docs/Release_process.md