Skip to content

Checklist for a success build using on premises qubeship

Jiang Zhang edited this page May 8, 2017 · 1 revision

Preparation:

  1. Check the environment variables in your .bash_profile/.bashrc:

    • Ensure ENV_TYPE=dev-opprem
    • Ensure some exports:
    export GITHUB_BASE_URL=https://github-isl-01.ca.com/api/v3
    export API_URL_BASE=http://192.168.99.100:9080
    
    # get your key from http://firebase.google.com
    FIREBASE_DB_URL=https://qubeship-526e6.firebaseio.com
    FIREBASE_API_KEY=<put your firebase key here>
    
    # virutal env
    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'
    source $HOME/Library/Python/2.7/bin/virtualenvwrapper.sh
    export activatesrc=~/.virtualenvs/qube_base_python/bin/activate
    
    # ngrok: create an account at https://ngrok.com
    export NGROK_AUTH=<your ngrok key here>
    export NGROK_HOSTNAME=<your ngrok host name>
    
    • Ensure qube_destination function exists:
    function qube_destination {
        export QUBE_API_URL=${1:-http://192.168.99.100:9080}
        export qube_env="-e QUBE_API_URL=$QUBE_API_URL"
    }
    export -f qube_destination
    • Ensure qube function exists:
    qube_img=qubeship/cli:latest
    function qube {
        docker run --rm -it $qube_env -v $HOME:/home/qube -v $PWD:/work $qube_img qube $@;
    }
    export -f qube
  2. run following command in bootstrap repository, to update images.

    ./down.sh
    ./run.sh
    
  3. Be sure to run qube_dstination http://192.168.99.100:9080, to point your qube command to local docker host.

  4. Get the most recent CLI:

    docker pull qubeship/cli:latest
    
  5. Check you have data for toolchains, opinions, endpoints.

    qube toolchain list
    qube opinion list
    qube endpoints list

    If not, dump and load from production environment:

    bootstrap/mongo_dump.sh
    bootstrap/mongo_load.sh

    Verify data is loaded by listing toolchains, opinions and endpoints.

    If you are trying to build jarvis-apis project, make sure the "Qubeship-Jarvis-Toolchain" is available:

    qube toolchain get --toolchain-id 5909a34697b368001ead237a 
  6. If not sure, just remove all old projects:

    qube project list
    qube project delete --project-id <copy the ID from the list command results>
  7. Update Jenkins configuration to use qubeship master token

    • Get the master token
    qube auth print-access-token --master
    • go to your local Jenkins http://192.168.99.100:8080. Make sure you are logged-in. If not, click "log in" button on the top right corner.
    • Click "Credentials" at the left. A list of credentials will be shown.
    • Click "Qubeship_vault_token" at the "name" column then click "update" at the left.
    • Paste the master token you got above. Then click save to make the change permanent.

Build a project (jarvis-apis):

  1. to create a new project you can use service-create command. "qube project" command is deprecated, but has not got a full replacement.

    qube service create --import-url https://github-isl-01.ca.com/<your CA ID (i.e. zhaji29)>/jarvis_apis --toolchain-id 5909a34697b368001ead237a --service-name jarvis-apis --branch prd --language java
    

    Jarvis-api project doesn't use "master" branch. the prd (projection) branch is specified by --branch prd.

    Be sure "qube project list" gives your the correct toolchain name: "Qubeship-Jarvis-Toolchain". If you miss-typed the ID, "Default toolchain" will be used silently.

  2. Go to your Github enterprise page of the repository for the project (jarvis-api). Click "Settings". Then click "Hooks & services". Make sure there is one hook using the project-id you got from service-create.

  3. If your project is not building, try to "Re-deliver notification payloads". Alternatively, you can trigger a build by running

    qube project start --project-id <your current project id>
    
  4. If the problem still here, try to check the logs:

    docker logs -f bootstrap_git_listener_1
    docker logs -f bootstrap_qube_builder_1
    

Clone this wiki locally