-
Notifications
You must be signed in to change notification settings - Fork 28
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding ability to deploy through travisci. And docs.
- Loading branch information
Showing
7 changed files
with
194 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,53 @@ | ||
|
||
# sudo required currently for postgresql 9.6 | ||
dist: trusty | ||
sudo: required | ||
services: | ||
- postgresql | ||
- postgresql | ||
before_install: | ||
- sudo apt-get -qq update | ||
- sudo apt-get install -y yui-compressor node optipng | ||
- sudo apt-get -qq update | ||
- sudo apt-get install -y yui-compressor node optipng | ||
before_script: | ||
- cp example.env .env | ||
- psql -c 'create database pygame_test;' -U postgres | ||
- psql pygame_test -c "CREATE USER pygame_test WITH PASSWORD 'password';" -U postgres | ||
- psql pygame_test -c "GRANT ALL PRIVILEGES ON DATABASE pygame_test to pygame_test;" -U postgres | ||
- cp example.env .env | ||
- psql -c 'create database pygame_test;' -U postgres | ||
- psql pygame_test -c "CREATE USER pygame_test WITH PASSWORD 'password';" -U postgres | ||
- psql pygame_test -c "GRANT ALL PRIVILEGES ON DATABASE pygame_test to pygame_test;" | ||
-U postgres | ||
addons: | ||
postgresql: "9.6" | ||
postgresql: '9.6' | ||
test: | ||
adapter: postgresql | ||
database: pygame_test | ||
|
||
language: python | ||
cache: pip | ||
python: | ||
- "3.6" | ||
- '3.6' | ||
install: | ||
- pip install -r requirements.dev.txt | ||
- pip install coveralls | ||
- pip install -e . | ||
|
||
script: APP_SECRET_KEY=a pytest | ||
|
||
after_success: | ||
- coveralls | ||
- coveralls | ||
before_deploy: | ||
- pwd | ||
- ls -la | ||
- git fetch --depth=500 | ||
- pygameweb_release_version_correct | ||
deploy: | ||
- provider: pypi | ||
user: illume | ||
distributions: sdist bdist_wheel | ||
on: | ||
branch: | ||
- master | ||
- mastertest | ||
password: | ||
secure: gzDc/dK0FJnLtcYBDXRu4PiIc+DvTBLKRbClBlSVayCiH0k+TzjatjwRJm9EPK0ctR3QX4esBrlxlLHVVIhjt1fWe/UcN+JEmR0ICPaPmcqR+17j+tPBX3PyrV8aULWe/PG9MgTKEZw9S8ysGPThlcXlcO0h65ma5/a58NZIBEKyamjXgrZmuipfYlMRjyk54c53gZGI+jKn3R3mgk+pDcjI3vL5pkA6QU69ucBhg/iLLoicpiTkUTfewV6nNcUKj88j162wgXshQ2Rnl7prvekDOaYeNplZzLto8gYO+HxO95povzG8nTxgqs1Soip1vW8hyPj4hmWkYfsxQt88UJZhnNaE+Dy2Uv+YyhxT7x9xonLB/HewOf2QROKElJG8qJ9CM+/F4QbkyRHXl9eP0hDbMDzc4cxAiuDJ0y3XysZBkRcBQoj+moDlyCv4LTc/bXhvoUXjCsmAI3xRmrV0j4Ml8wgoqFxT/bLH3CLW2sRmYg6mE+OCGfjubyxQPrwHLDOOJykj2kB1GCDhl1Jn0iGyRXdKzykSJPO3LJVelMmiwZwbdED0Nih70buG6EsEOquZhZB+oGltjO2W9rbphaxnoUDTQVq+JFrXD1eACY/42HJ4RZ9gBo0SqRCuGGaaYgw2BCvqinRoH+5qfoXontlkGX/XFbKQP3+3agJ0K+M= | ||
skip_cleanup: true | ||
- provider: pypi | ||
user: illume | ||
distributions: sdist bdist_wheel | ||
on: | ||
tags: true | ||
password: | ||
secure: gzDc/dK0FJnLtcYBDXRu4PiIc+DvTBLKRbClBlSVayCiH0k+TzjatjwRJm9EPK0ctR3QX4esBrlxlLHVVIhjt1fWe/UcN+JEmR0ICPaPmcqR+17j+tPBX3PyrV8aULWe/PG9MgTKEZw9S8ysGPThlcXlcO0h65ma5/a58NZIBEKyamjXgrZmuipfYlMRjyk54c53gZGI+jKn3R3mgk+pDcjI3vL5pkA6QU69ucBhg/iLLoicpiTkUTfewV6nNcUKj88j162wgXshQ2Rnl7prvekDOaYeNplZzLto8gYO+HxO95povzG8nTxgqs1Soip1vW8hyPj4hmWkYfsxQt88UJZhnNaE+Dy2Uv+YyhxT7x9xonLB/HewOf2QROKElJG8qJ9CM+/F4QbkyRHXl9eP0hDbMDzc4cxAiuDJ0y3XysZBkRcBQoj+moDlyCv4LTc/bXhvoUXjCsmAI3xRmrV0j4Ml8wgoqFxT/bLH3CLW2sRmYg6mE+OCGfjubyxQPrwHLDOOJykj2kB1GCDhl1Jn0iGyRXdKzykSJPO3LJVelMmiwZwbdED0Nih70buG6EsEOquZhZB+oGltjO2W9rbphaxnoUDTQVq+JFrXD1eACY/42HJ4RZ9gBo0SqRCuGGaaYgw2BCvqinRoH+5qfoXontlkGX/XFbKQP3+3agJ0K+M= | ||
skip_cleanup: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
__version__ = '0.0.1' | ||
__version__ = '0.0.2' | ||
|
||
|
||
# So we can use environment variables to configure things. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
"""For updating the version from git. | ||
__init__.py contains a __version__ field. | ||
Update that. | ||
If we are on master, we want to update the version as a pre-release. | ||
git describe --tags | ||
With these: | ||
__init__.py | ||
__version__= '0.0.2' | ||
git describe --tags | ||
0.0.1-22-g729a5ae | ||
We want this: | ||
__init__.py | ||
__version__= '0.0.2.dev22.g729a5ae' | ||
Get the branch/tag name with this. | ||
git symbolic-ref -q --short HEAD || git describe --tags --exact-match | ||
""" | ||
|
||
import io | ||
import os | ||
import pathlib | ||
import re | ||
import subprocess | ||
|
||
def migrate_source_attribute(attr, to_this, target_file, regex): | ||
"""Updates __magic__ attributes in the source file""" | ||
change_this = re.compile(regex, re.S) | ||
new_file = [] | ||
found = False | ||
|
||
with open(target_file, 'r') as fp: | ||
lines = fp.readlines() | ||
|
||
for line in lines: | ||
if line.startswith(attr): | ||
found = True | ||
line = re.sub(change_this, to_this, line) | ||
new_file.append(line) | ||
|
||
if found: | ||
with open(target_file, 'w') as fp: | ||
fp.writelines(new_file) | ||
|
||
def migrate_version(target_file, new_version): | ||
"""Updates __version__ in the source file""" | ||
regex = r"(?:(\d+\.(?:\d+\.)*\d+))" | ||
migrate_source_attribute('__version__', new_version, target_file, regex) | ||
|
||
|
||
def is_master(): | ||
cmd = ('git symbolic-ref -q --short HEAD ' | ||
'|| git describe --tags --exact-match') | ||
|
||
tag_branch = subprocess.check_output(cmd, shell=True) | ||
return tag_branch in [b'master\n', b'mastertest\n'] | ||
|
||
def git_tag_or_branch_name(): | ||
cmd = ('git symbolic-ref -q --short HEAD ' | ||
'|| git describe --tags --exact-match') | ||
tag_branch = subprocess.check_output(cmd, shell=True) | ||
tag_branch = tag_branch.decode().strip() | ||
return tag_branch | ||
|
||
def prerelease_version(): | ||
""" return what the prerelease version should be. | ||
0.0.2.dev22+22.g729a5ae | ||
""" | ||
cmd = 'git describe --tags' | ||
ver_str = subprocess.check_output(cmd, shell=True) | ||
ver, commits_since, githash = ver_str.decode().strip().split('-') | ||
initpy_ver = get_version() | ||
assert len(initpy_ver.split('.')) == 3, 'pygameweb/__init__.py version should be like 0.0.2' | ||
assert initpy_ver > ver, 'the pygameweb/__init__.py version should be newer than the last tagged release.' | ||
return f'{initpy_ver}.dev{commits_since}+{commits_since}.{githash}' | ||
|
||
def read(*parts): | ||
""" Reads in file from *parts. | ||
""" | ||
try: | ||
return io.open(os.path.join(*parts), 'r', encoding='utf-8').read() | ||
except IOError: | ||
return '' | ||
|
||
def get_version(): | ||
""" Returns version from pygameweb/__init__.py | ||
""" | ||
version_file = read('pygameweb', '__init__.py') | ||
version_match = re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]', | ||
version_file, re.MULTILINE) | ||
if version_match: | ||
return version_match.group(1) | ||
raise RuntimeError('Unable to find version string.') | ||
|
||
|
||
def release_version_correct(): | ||
"""Makes sure the: | ||
- prerelease verion for master is correct. | ||
- release version is correct for tags. | ||
""" | ||
if is_master(): | ||
# update for a pre release version. | ||
initpy = pathlib.Path('pygameweb') / '__init__.py' | ||
|
||
if initpy.exists(): | ||
target_version = str(initpy.absolute()) | ||
new_version = prerelease_version() | ||
print(f'updating version in {initpy} from {target_version} to {new_version}') | ||
migrate_version(target_version, new_version) | ||
else: | ||
# check that we are a tag with the same version as in __init__.py | ||
assert get_version() == git_tag_or_branch_name(), 'git tag/branch name not the same as pygame/__init__.py __verion__' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,4 +14,6 @@ pytest-pylint | |
pytest-timeout | ||
pytest-watch | ||
pytest-xdist | ||
twine | ||
wheel | ||
-r requirements.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,3 +9,5 @@ | |
|
||
addopts=-v --cov pygameweb pygameweb/ tests/ | ||
|
||
[bdist_wheel] | ||
universal=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters