Skip to content

Scholar@UC App Workflow

Thomas Scherz edited this page Feb 23, 2021 · 11 revisions
  1. Clone the ucrate repo
    git clone [email protected]:uclibs/ucrate.git
    cd ucrate

  2. Create a new feature branch based on the develop branch
    git checkout develop
    git pull
    git checkout -b feature/#issuenum-branch-name

  3. Run bundler. (if bundler fails with mysql errors, comment out gem 'mysql2' in the Gemfile and run bundler again)
    bundle install

  4. Start Solr and Fedora.

  5. Run the database migrations.
    bundle exec rake db:migrate

  6. Start the rails server.
    rails server

  7. Make sure the app is up and running.
    http://localhost:3000

  8. Make your changes.

  9. Commit your changes to local Git repository.

  10. Run spec tests locally. Make sure they all pass.
    bundle exec rake spec

  11. Push changes to remote feature branch.
    git push origin feature/#issuenum-branch-name

  12. On github.com, open a new pull request for your feature branch.

  13. Make sure CircleCI passes.

  14. After someone else has merged the pull request, delete the feature branch. Do not merge your own pull requests.

  15. Close the resolved issue.

  16. Deploy to DEVELOPMENT

  17. Create a release branch based on the develop branch.
    git checkout -b release

  18. Make any changes and commits needed.

  19. Push the release branch to GitHub
    git push origin release

  20. Deploy to QA

  21. Complete the Change Management Form.

  22. If a security scan is needed wipe content, create a scanning account, and request a scan

  23. Run through the manual test script on the QA or dev server

  24. Update the CHANGELOG.md with changes for this release

  25. Merge the release branch into the main branch AND the develop branch.
    git checkout release
    git pull
    git checkout main
    git pull
    git merge release
    git checkout develop
    git pull
    git merge release

  26. Push the main and develop branches to GitHub
    git checkout develop
    git push origin develop
    git checkout main
    git push origin main

  27. In the main branch, tag a new release in Git and push it to the remote
    git checkout main
    ex. git tag -a v1.4.0 -m '10-01-2014'
    git push --tags

  28. [Deploy to production server] (Scholar@UC-App-Deployment-Procedures) (after change request has been approved)

  29. Make any needed changes to the server environment (cron jobs, etc.)

  30. Post announcement to ScholarBlog

  31. Delete the local and remote release branches.
    git branch -d release
    git push origin :release

  32. Close the milestone if not already done

  33. The person that submitted the change request should provide an outcome on the change management website.