Skip to content

Commit

Permalink
travis support
Browse files Browse the repository at this point in the history
new icon niconiconi~
  • Loading branch information
mariotaku committed Dec 29, 2015
1 parent 63ec4ea commit 59a29a6
Show file tree
Hide file tree
Showing 140 changed files with 198 additions and 0 deletions.
48 changes: 48 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
language: android
android:
components:
# Uncomment the lines below if you want to
# use the latest revision of Android SDK Tools
- platform-tools
- tools

# The BuildTools version used by your project
- build-tools-23.0.2

# The SDK version used to compile your project
- android-23

# Additional components

# Specify at least one system image,
# if you need to run emulator(s) during your tests
# - sys-img-armeabi-v7a-android-19
# - sys-img-x86-android-17
sudo: false

jdk:
- oraclejdk8

env:
global:
MALLOC_ARENA_MAX=2
GRADLE_OPTS=-Xmx1024m -Dorg.gradle.parallel=false

addons:
apt:
packages:
- python2.7
- libmagic1

cache:
directories:
- $HOME/.local/opt

before_install:
- ./travis/scripts/extract_signing_config.sh
- export PATH=$HOME/.local/bin:$PATH
- pip install -r ./travis/configs/requirements.txt --user

script: ./gradlew build --no-daemon --stacktrace

after_success: ./travis/scripts/travis_upload_release_to_github.py
Binary file added art/ic_launcher_niconiconi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added art/ic_launcher_niconiconi.psd
Binary file not shown.
5 changes: 5 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ android {
versionCode 1
versionName "1.0"
}
splits {
density {
enable true
}
}
buildTypes {
release {
minifyEnabled false
Expand Down
Empty file modified gradlew
100644 → 100755
Empty file.
Empty file modified gradlew.bat
100644 → 100755
Empty file.
Binary file added src/main/ic_launcher-web.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/main/res/drawable-hdpi/emoji_u1f46a.png
Binary file added src/main/res/drawable-hdpi/emoji_u1f48f.png
Binary file added src/main/res/drawable-hdpi/emoji_u1f491.png
Binary file added src/main/res/drawable-mdpi/emoji_u1f46a.png
Binary file added src/main/res/drawable-mdpi/emoji_u1f48f.png
Binary file added src/main/res/drawable-mdpi/emoji_u1f491.png
Binary file added src/main/res/drawable-xhdpi/emoji_u1f46a.png
Binary file added src/main/res/drawable-xhdpi/emoji_u1f48f.png
Binary file added src/main/res/drawable-xhdpi/emoji_u1f491.png
Binary file added src/main/res/drawable-xxhdpi/emoji_u1f46a.png
Binary file added src/main/res/drawable-xxhdpi/emoji_u1f48f.png
Binary file added src/main/res/drawable-xxhdpi/emoji_u1f491.png
Binary file added src/main/res/drawable-xxxhdpi/emoji_u1f46a.png
Binary file added src/main/res/drawable-xxxhdpi/emoji_u1f48f.png
Binary file added src/main/res/drawable-xxxhdpi/emoji_u1f491.png
Binary file modified src/main/res/mipmap-hdpi/ic_launcher.png
Binary file modified src/main/res/mipmap-mdpi/ic_launcher.png
Binary file modified src/main/res/mipmap-xhdpi/ic_launcher.png
Binary file modified src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary file modified src/main/res/mipmap-xxxhdpi/ic_launcher.png
2 changes: 2 additions & 0 deletions travis/configs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
uritemplate
python-magic
6 changes: 6 additions & 0 deletions travis/scripts/extract_signing_config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash

if [ -n ${SIGNING_CONFIG} ]; then
echo ${SIGNING_CONFIG} | base64 -d | tar zxf -
echo 'Extracted signing config'
fi
137 changes: 137 additions & 0 deletions travis/scripts/travis_upload_release_to_github.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from __future__ import print_function

import os
import sys
import urllib2
import json
import fnmatch
import magic
import uritemplate
import string
from os import getenv
from subprocess import check_output
from subprocess import CalledProcessError
from urllib2 import HTTPError

__author__ = 'mariotaku'
git_https_url_prefix = 'https://github.com/'
git_ssh_url_prefix = '[email protected]:'
git_git_url_prefix = 'git://github.com/'
git_file_suffix = '.git'
github_header_accept = 'application/vnd.github.v3+json'
github_header_user_agent = 'TravisUploader/0.1'

DEVNULL = open(os.devnull, 'w')
repo_url = None

try:
repo_url = check_output(['git', 'config', '--get', 'remote.origin.url']).splitlines()[0]
except CalledProcessError:
print('No remote url for this project, abort')
exit(0)

user_repo_name = None
if repo_url.startswith(git_ssh_url_prefix):
user_repo_name = repo_url[len(git_ssh_url_prefix):]
elif repo_url.startswith(git_https_url_prefix):
user_repo_name = repo_url[len(git_https_url_prefix):]
elif repo_url.startswith(git_git_url_prefix):
user_repo_name = repo_url[len(git_git_url_prefix):]

if not user_repo_name:
print('Not a github repo (%s), abort' % repo_url, file=sys.stderr)
exit(0)

if user_repo_name.endswith(git_file_suffix):
user_repo_name = user_repo_name[:-len(git_file_suffix)]

github_user_name = string.split(user_repo_name, '/')[0]
github_repo_name = string.split(user_repo_name, '/')[1]

current_tag = None
current_tag_body = None
try:
current_tag = check_output(['git', 'describe', '--tags', '--exact-match', '--abbrev=0'],
stderr=DEVNULL).splitlines()[0]
except CalledProcessError:
print('This commit doesn\'t have tag, abort', file=sys.stderr)
exit(0)
try:
current_tag_body = '\n'.join(
check_output(['git', 'show', '-s', '--format=%b', current_tag], stderr=DEVNULL).splitlines()[2:])
except CalledProcessError:
current_tag_body = "Automatic upload for version %s" % current_tag

github_access_token = getenv('GITHUB_ACCESS_TOKEN')

if not github_access_token:
print('No access token given, abort', file=sys.stderr)
exit(0)

github_authorization_header = "token %s" % github_access_token

req_headers = {'Accept': github_header_accept}

request = urllib2.Request(
uritemplate.expand('https://api.github.com/repos/{user}/{repo}/releases/tags/{tag}',
{'user': github_user_name, 'repo': github_repo_name, 'tag': current_tag}),
headers={
'Accept': github_header_accept,
'Authorization': github_authorization_header,
'User-Agent': github_header_user_agent
})
response = None
try:
response = urllib2.urlopen(request)
except HTTPError, err:
if err.code == 404:
print('Creating release for tag %s' % current_tag)
request = urllib2.Request(
uritemplate.expand('https://api.github.com/repos/{user}/{repo}/releases',
{'user': github_user_name, 'repo': github_repo_name}),
data=json.dumps({
'tag_name': current_tag,
'name': "Version %s" % current_tag,
'body': current_tag_body
}),
headers={
'Accept': github_header_accept,
'Authorization': github_authorization_header,
'Content-Type': 'application/json',
'User-Agent': github_header_user_agent
})
try:
response = urllib2.urlopen(request)
except HTTPError:
print('Unable to create release, abort', file=sys.stderr)
exit(0)
else:
response = None

if not response:
print('Unable to get release, abort', file=sys.stderr)
exit(0)

response_values = json.loads(response.read())

for root, dirnames, filenames in os.walk(os.getcwd()):
for filename in fnmatch.filter(filenames, '*-release.apk'):
file_path = os.path.join(root, filename)
request = urllib2.Request(
uritemplate.expand(response_values['upload_url'], {'name': filename}),
data=open(file_path, 'rb'),
headers={
'Accept': github_header_accept,
'Authorization': github_authorization_header,
'Content-Type': magic.from_file(file_path, mime=True),
'Content-Length': os.path.getsize(file_path),
'User-Agent': github_header_user_agent
})
print("Uploading %s ..." % filename),
try:
response = urllib2.urlopen(request)
print("OK")
except HTTPError, err:
print("Error %d" % err.code)

0 comments on commit 59a29a6

Please sign in to comment.