Challenge Overview
1.0. Introduction
Topcoder would like to improve the product development team's ability to deliver quick, stable releases across all key applications/services of the platform. This includes making it easy for the community to quickly participate in design, development, qa, devops, and release efforts.
2.0. Challenge Overview
The legacy tc-website is fairly complex to setup locally and we intend to use docker containers to make local deployment easier for newcomers.2.1. Requirements
Instructions on how to deploy the tc-website needs to be brought up-to-date -- the old Topcoder VM wiki instructions were written under the assumption that deployment will be on an EC2 VM.This challenge will focus on documenting how to successfully deploy the tc-website on any developer machine running Linux, mac OS or Windows by combining instructions from multiple sources, including a previous challenge , the Topcoder VM wiki instructions and an a reference VM into a single coherent document.
2.2. Background
To successfully deploy the tc-website, a couple of tools and services need to be present in the development environment:2.0. build tool - maven v3.3+
3.0. web server - Apache v2.2+
4.0. app server - JBoss v4.0.4
5.0. database server - Informix v11.50+
6.0. LDAP server - openLDAP v2.4+
7.0. cache service - redis v3.2+
8.0. container service - docker v1.12+
9.0. scm tool - svn v1.5.x - v1.6.x
10.0. build tool - ant v1.7+
2.2.1. To access the reference VM, you need to add this entry to your hosts file: 54.166.107.127 cockpit.cloud.topcoder.com tc.cloud.topcoder.com.
2.2.2. Visit https://tc.cloud.topcoder.com/tc - to accept the (expired) self-signed SSL certificate
2.2.3. Visit https://tc.cloud.topcoder.com/tc?&module=Login - then login with heffan/password but note that you will be redirected to the main site.
2.2.4. Visit https://tc.cloud.topcoder.com/tc?module=MyHome - to switch from the main site back to the VM and confirm that you are now logged in as heffan.
2.3. Tasks
JBoss and Informix only are in scope of this challenge.1. Install the required JBoss version mentioned above in your local environment.
2. Install the Informix database server by using an existing docker image on docker hub. You can pull it with docker pull appiriodevops/tc-database-scripts:9a09c5ab3538b9f37b81beeea11a574ea4a464d1.
3. Checkout the tc-website master branch from git. To save time and bandwidth, you can pull only master by executing git clone git@github.com:topcoder-platform/tc-website.git -b master --single-branch.
4. Execute the ant build targets listed below to deploy the tc-website and all its dependencies to your clean JBoss installation.
ant -f build_tc.xml deploy
/home/tc/conf-backup/cp-conf.sh
ant -f build_tc.xml deploy-reg
ant -f build_distui.xml deploy
5. To help you troubleshoot jar/war dependencies that may have been omitted, a zip archive of the reference VM's JBoss folder with all deployed dependencies can be downloaded for comparison with your own JBoss folder using a cross-platform tool like DiffMerge.
6. Provide markdown formatted instructions explaining how to build and run the tc-website using a clean JBoss installation based on your findings in this challenge.
7. Provide verification by including screen shots and logs proving that the services in scope were deployed successfully in your development machine.
8. In your final submission, please clearly indicate the git commit hashes used in all aspects of your submission.
Please endeavour to clarify any requirements that are unclear and avoid making excessive assumptions in your implementation.
3.0. Repositories
There are two main branches of the tc-website: the tc-website master branch which uses ant as build tool; and the tc-website tc1-tcnode branch which uses maven as build tool.
The tc1-tcnode branch is distinct from the master branch in two aspects: due to its use of maven instead of ant as build tool, it succeeded in organizing the code into (maven) modules; and, it documented how to successfully deploy the tc-website on a development machine.
Our goal is to backport the deployment instructions which completely documented local deployment into the master branch and fix any deployment issues that carry-over from the tc1-tcnode branch along the way.
https://github.com/topcoder-platform/tc-website
https://github.com/topcoder-platform/tc-website-external-artifacts
https://github.com/topcoder-platform/tc-website-glue
https://github.com/topcoder-platform/tc-website-shared
https://github.com/topcoder-platform/tc-website-static
tc-website tc1-tcnode (uses maven)
https://github.com/appirio-tech/tc1-tcnode