Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Unity Deployment Tools #45

Merged
merged 14 commits into from
Feb 11, 2016
87 changes: 87 additions & 0 deletions .deploy.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
[Misc]
#if set to true, all logs from commands will be shown. Default is false.
verbose=false

#if set to true, Travis will always try to build the package/asset, even when there isn't a tag. Default is true.
always_run=true

[Docs]
#if set to true, will enable generating docs and deploying them to github pages. Default is true.
enable=true

#if you want to generate documentation only from a specific branch. Default is master.
branch=

#if you want to name your project something other than the repo name, fill in:
projectname=

#if you want to have a custom username when pushing to gh-pages, fill in. If left blank, defaults to "Travis-CI Doxygen Deployment".
username=

#if you want to have a custom email when pushing to gh-pages, fill in. If left blank, defaults to "[email protected]".
email=

#if you want to have a custom message for the commit to gh-pages, fill in. If left blank, defaults to "Deploying to GitHub Pages".
commit_description=

#if you want the short description to be something other than your repo description, fill in:
description=

#if you wish your project to have a logo, fill in the relative path to the image.
#e.g. if you store it in the .deploy folder, fill in this: ./.deploy/my_logo.png
logo=

#if set to true, will include the tag as the documentation version. Default is false.
include_version=false

#if set to true, will include all code even if not documented. Default is true.
include_non_documented=true

#if set to true, will include private members in the documentation. Default is true.
include_privates=true

#if set to true, will include a sidebar with a navigation panel. Default is true.
include_nav_panel=true

#if set to true, will include a search function in each page. Default is true.
include_search=true

#if set to true, will generate class hierarchy diagrams. Default is true.
gen_diagrams=true

[Github]
#if set to true, will enable deployment to github if possible. Default is true.
enable=true

#if set to true, tag will be included after the package name (e.g. UnityDeployTools_v1.1). Default is true.
include_version=true

#if you want to name the deploy zip file something other than your repo name:
packagename=

#if set to true, tags with "alpha" or "beta" in their name will be set to prerelease. Default is true.
conditional_prerelease=true

#if set to true, tags with "alpha" or "beta" in their name will be deployed as draft. Default is true.
conditional_draft=true

#if set to true, releases will always be set to prerelease.
#Overrides conditional_prerelease if true. Default is false.
prerelease=false

#if set to true, releases will always be deployed as a draft.
#Overrides conditional_draft if true. Default is false.
draft=false

#if you want to name the release something other than the tag, fill in:
title=

#if you want to add something (don't forget this should be in github markdown)
#to the release description:
description=[Changelog!](https://github.com/ricardojmendez/UnitySteer/blob/master/CHANGELOG.md)

#if you want to deploy only from a specific branch:
branch=

[AssetStore]
#not supported YET
21 changes: 21 additions & 0 deletions .deploy/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2016 Daniel Nunes

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
110 changes: 110 additions & 0 deletions .deploy/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
.. |travisbadge| image:: https://travis-ci.org/GandaG/unity-deploy-tools.svg?branch=master
:target: https://travis-ci.org/GandaG/unity-deploy-tools

.. |nbsp| unicode:: 0xA0
:trim:

####################################################################################
Unity Deployment Tools |nbsp| |nbsp| |nbsp| |travisbadge|
####################################################################################
*Continuous deployment tools for open-source* `Unity3D <https://unity3d.com/>`_ *packages and assets.*

This repository offers a quick way to setup open source unity packages. It features:

- a self-documented and easy to use .ini file to configure all the options;
- automated package/asset exporting from unity;
- automated deployment to Github Releases;
- automated creation and deployment of documentation to Github Pages;
- automated deployment to Unity's Asset Store. [TODO]


************
Installation
************
1. Download the `latest stable release <https://github.com/GandaG/unitypackage-ci/releases/latest>`_;

2. Unpack the files into your repository's root directory;

3. Go to `Travis-CI <https://travis-ci.org/>`_ an sign in with Github;

4. Enable your repository in your account page;

5. Open :code:`.deploy.ini` with a text editor (like Notepad++) and modify the options under the :code:`[Misc]` section as per your preferences.

6. For additional features check the subsections below;

7. Simply push a commit and let travis do all the work for you!

*******************
Additional Features
*******************
In order to use any of the features below you need to grab an OAuth token from Github with special permissions. Take these steps:

1. Sign in to Github;

2. Go to your `Settings <https://github.com/settings/>`_;

3. Go to `Personal Access Tokens <https://github.com/settings/tokens>`_;

4. Click on :code:`Generate new token`;

5. Enter your password;

6. Give the token a good description. Mine is :code:`Travis-CI Deploy`;

7. Give the token these permissions:

- gist;
- read:org;
- repo;
- user:email;
- write:repo_hook

8. Click on :code:`Generate token`;

9. The new token should now appear. NEVER give or show this token to anyone, not even Travis (the encryption process later on does not send the token to Travis, the entire process is local);

10. Temporarily store your token somewhere local and safe;

11. Go to `Travis-CI <https://travis-ci.org/>`_ and sign in with Github;

12. Go to your repository settings;

13. In the Environment Variables section, write "GH_TOKEN" (without the quotes) in the :code:`Name` field and paste the token in the :code:`Value` field;

14. Make sure to leave :code:`Display value in build log` as :code:`OFF` and click :code:`Add`;

15. It's now safe to delete and forget about that token from before! Only use the secure (encrypted) version from now on.

Github Releases
""""""""""""""""""
Simply open your :code:`.deploy.ini` file with a text editor (like Notepad++) and modify the :code:`[Github]`
section as per your preferences. That's it, really.

Code Documentation
""""""""""""""""""
Documentation for all your code is generated with `Doxygen <http://www.stack.nl/~dimitri/doxygen/index.html/>`_.
Example documentation is provided at the `Github Pages <https://gandag.github.io/unity-deploy-tools/>`_ of this repository,
example script taken from Microsoft's `XML Documentation Example <https://msdn.microsoft.com/en-us/library/aa288481(v=vs.71).aspx>`_.

Basic Usage
'''''''''''
Documentation generation is enabled by default. Open your :code:`.deploy.ini` file with a text editor (like Notepad++)
and modify the :code:`[Docs]` section as per your preferences. That's pretty much it, for more things to do with Doxygen check below.

Advanced/Expert
'''''''''''''''
Doxygen must be (for the sheer amount of options) the best documented software I've ever seen.

If you want to customize your docs more than the basic options presented in the :code:`.deploy.ini` file
(these are the same presented in the basic panel of the doxywizard) head over to :code:`.deploy/docs/` and
open the :code:`Doxyfile`. This is the default doxygen configuration file and every option is very well
documented. There are bajillions of them, have fun!

Please note that some options are hardcoded (see :code:`.deploy/travis/deploy_docs.sh`).

*****************
Upcoming Features
*****************
- Automated package deployment to `Unity <https://unity3d.com/>`_'s Asset Store.
- Automated compiling and distribution as a .dll file.
Loading