forked from Jamie-Landeg-Jones/youtube-dl
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
re-worked release workflow, it is one-step and creates GPG signatures…
… now
- Loading branch information
1 parent
26cf040
commit b962b76
Showing
8 changed files
with
131 additions
and
23 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 |
---|---|---|
@@ -0,0 +1,17 @@ | ||
updates_key.pem | ||
*.pyc | ||
*.pyo | ||
youtube-dl.exe | ||
wine-py2exe/ | ||
py2exe.log | ||
*.kate-swp | ||
build/ | ||
dist/ | ||
MANIFEST | ||
*.DS_Store | ||
youtube-dl.tar.gz | ||
.coverage | ||
cover/ | ||
__pycache__/ | ||
.git/ | ||
*~ |
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
Empty file.
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,33 @@ | ||
#!/usr/bin/env python3 | ||
|
||
import json | ||
import sys | ||
import hashlib | ||
import urllib.request | ||
|
||
if len(sys.argv) <= 1: | ||
print('Specify the version number as parameter') | ||
sys.exit() | ||
version = sys.argv[1] | ||
|
||
with open('update/LATEST_VERSION', 'w') as f: | ||
f.write(version) | ||
|
||
versions_info = json.load(open('update/versions.json')) | ||
if 'signature' in versions_info: | ||
del versions_info['signature'] | ||
|
||
new_version = {} | ||
|
||
filenames = {'bin': 'youtube-dl', 'exe': 'youtube-dl.exe', 'tar': 'youtube-dl-%s.tar.gz' % version} | ||
for key, filename in filenames.items(): | ||
print('Downloading and checksumming %s...' %filename) | ||
url = 'http://youtube-dl.org/downloads/%s/%s' % (version, filename) | ||
data = urllib.request.urlopen(url).read() | ||
sha256sum = hashlib.sha256(data).hexdigest() | ||
new_version[key] = (url, sha256sum) | ||
|
||
versions_info['versions'][version] = new_version | ||
versions_info['latest'] = version | ||
|
||
json.dump(versions_info, open('update/versions.json', 'w'), indent=4, sort_keys=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
4 changes: 1 addition & 3 deletions
4
devscripts/gh-pages/sign_versions.py → devscripts/gh-pages/sign-versions.py
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
Empty file.
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,11 +1,74 @@ | ||
#!/bin/sh | ||
|
||
# IMPORTANT: the following assumptions are made | ||
# * you did --set-upstream | ||
# * the gh-pages branch is named so locally | ||
# * the git config user.signingkey is properly set | ||
|
||
# You will need | ||
# pip install coverage nose rsa | ||
|
||
set -e | ||
|
||
if [ -z "$1" ]; then echo "ERROR: specify version number like this: $0 1994.09.06"; exit 1; fi | ||
version="$1" | ||
if [ ! -z "`git tag | grep "$version"`" ]; then echo 'ERROR: version already present'; exit 1; fi | ||
if [ ! -z "`git status --porcelain`" ]; then echo 'ERROR: the working directory is not clean; commit or stash changes'; exit 1; fi | ||
sed -i "s/__version__ = '.*'/__version__ = '$version'/" youtube_dl/__init__.py | ||
make all | ||
git add -A | ||
if [ ! -z "`git status --porcelain | grep -v CHANGELOG`" ]; then echo 'ERROR: the working directory is not clean; commit or stash changes'; exit 1; fi | ||
if [ ! -f "updates_key.pem" ]; then echo 'ERROR: updates_key.pem missing'; exit 1; fi | ||
|
||
echo "\n### First of all, testing..." | ||
make clean | ||
nosetests --with-coverage --cover-package=youtube_dl --cover-html test || exit 1 | ||
|
||
echo "\n### Changing version in version.py..." | ||
sed -i~ "s/__version__ = '.*'/__version__ = '$version'/" youtube_dl/version.py | ||
|
||
echo "\n### Committing CHANGELOG README.md and youtube_dl/version.py..." | ||
make README.md | ||
git add CHANGELOG README.md youtube_dl/version.py | ||
git commit -m "release $version" | ||
git tag -m "Release $version" "$version" | ||
|
||
echo "\n### Now tagging, signing and pushing..." | ||
git tag -s -m "Release $version" "$version" | ||
git show "$version" | ||
read -p "Is it good, can I push? (y/n) " -n 1 | ||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi | ||
echo | ||
git push | ||
|
||
echo "\n### OK, now it is time to build the binaries..." | ||
REV=$(git rev-parse HEAD) | ||
make youtube-dl youtube-dl.tar.gz | ||
wget "http://jeromelaheurte.net:8142/download/rg3/youtube-dl/youtube-dl.exe?rev=$REV" -O youtube-dl.exe || \ | ||
wget "http://jeromelaheurte.net:8142/build/rg3/youtube-dl/youtube-dl.exe?rev=$REV" -O youtube-dl.exe | ||
mkdir -p "update_staging/$version" | ||
mv youtube-dl youtube-dl.exe "update_staging/$version" | ||
mv youtube-dl.tar.gz "update_staging/$version/youtube-dl-$version.tar.gz" | ||
git checkout HEAD -- youtube-dl youtube-dl.exe | ||
|
||
echo "\n### Signing and uploading the new binaries to youtube-dl.org..." | ||
for f in update_staging/$version/*; do gpg --detach-sig "$f"; done | ||
scp -r "update_staging/$version" [email protected]:html/downloads/ | ||
rm -r update_staging | ||
|
||
echo "\n### Now switching to gh-pages..." | ||
MASTER=$(git rev-parse --abbrev-ref HEAD) | ||
git checkout gh-pages | ||
git checkout "$MASTER" -- devscripts/gh-pages/ | ||
git reset devscripts/gh-pages/ | ||
devscripts/gh-pages/add-version.py $version | ||
devscripts/gh-pages/sign-versions.py < updates_key.pem | ||
devscripts/gh-pages/generate-download.py | ||
devscripts/gh-pages/update-copyright.py | ||
rm -r test_coverage | ||
mv cover test_coverage | ||
git add *.html *.html.in update test_coverage | ||
git commit -m "release $version" | ||
git show HEAD | ||
read -p "Is it good, can I push? (y/n) " -n 1 | ||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then exit 1; fi | ||
echo | ||
git push | ||
|
||
echo "\n### DONE!" | ||
git checkout $MASTER |