[Python] Automatisieren Sie Pelican Builds mit Travis CI

Wie der Titel schon sagt. Pelican + Es gibt eine Website, die von GitHub Pages betrieben wird. Ich habe versucht, Travis CI so einzustellen, dass HTML automatisch mit dem Befehl "pelican" generiert wird, als ich einen Artikel an "master" und in den Zweig "gh-pages" verschoben habe, um die Site zu aktualisieren. Site: http://zaki-yama.github.io/salesforce-developers.info

Voraussetzungen

Ich habe den Typ von GitHub Pages namens ** Project Pages ** ausprobiert. Es gibt zwei Arten von GitHub-Seiten: ** Benutzer- / Organisationsseiten ** und ** Projektseiten **.

User/Organization Pages

--Repository-Name: [** GitHub-Kontoname **] .github.io

Project Pages

--Reposito-Name: Optional

TL;DR

Wenn Sie Englisch lesen können, können Sie diesem Artikel folgen. http://blog.thomasemmerling.de/automatic-pelican-publishing-on-github-pages-via-travisci.html

Verfahren

Aktivieren Sie den Befehl travis

$ gem install travis

Holen Sie sich ein persönliches Zugriffstoken für GitHub

Referenz: Erstellen eines Zugriffstokens für die Verwendung in der Befehlszeile - Benutzerdokumentation

Sie benötigen ein Token, um von Travis CI in das GitHub-Repository zu übertragen. Öffnen Sie Einstellungen> Persönliche Zugriffstoken auf GitHub und stellen Sie ein neues Token mit [Neues Token generieren] aus.

Kopieren Sie die angezeigte Zeichenfolge.

SS_2016-01-08_0_18_37.png

Token verschlüsseln

Verwenden Sie den ersten installierten Befehl travis.

$ travis encrypt GH_TOKEN=[Token kopiert]
Shell completion not installed. Would you like to install it now? |y| y
Detected repository as zaki-yama/salesforce-developers.info, is this correct? |yes| yes
Please add the following to your .travis.yml file:

  secure: "FLEqynRypa3B4S9qzcj0OTCwXrHUjEvsiXTI0r7qhZMzt11JUJUSzpVce/q5ZSENuBe9LR+c7MHl0pq9+1fka7bnYpbqWSybbIT5hLUVpIxB2ZvapogHmf9L/1n0vcODGhFwMUOfI1MuDN47wGCHS+qabNkIlzGGQPZYpri1ns1sp5rM7VFmVW6p3grAnhkaVWJIvW7GZORIPH11uBWtWsO2vhymrzM1J/PAgbJcSCjhtEZ79ntiG9DkAGqG27mVKPMNN8NDeIFGlbz2YyPgAqursSjZEPgmnzcQhzqyGz9D9Z5vAONki5vZ9CamEPfFa9llbQlwceM/7DJS+8FsBmiHH59i5rxW40iNK2otl6rSapXp1CLoWptXKVcyl9EjKcBUrRpWZ0Xzj94Ili80RbXiFJBW3B4qtrx7KCweUPURlY94a7n+P+pjbnx/jsdXFyvW4yR9R4+we82TxMPn49kq9Qf0cKnuEkVBOK1QyntdIDcW/L6heWqJAjWJMMGch4lSi0cN/8UGZxqq0b+OoHBp3FHWrnvOnLFB4mEgzp1/sa5jAFr6uq9mIS/TZ37XWrUX39YzAp6IL9Xq5Gmwof8nhKfnX7xm/yb3bglOt9HgrxArEKWoc/w/Gt4uxjGMQ2B9YjJsOdnxBHPpUgUXXxHj0FaD6K0pHLpJRQ+v78A="

Pro Tip: You can add it automatically by running with --add.

Die Zeichenfolge nach "Secure:" ist ein verschlüsseltes Token. Kopieren Sie sie daher.

Machen Sie .travis.yml

Erstellen Sie eine .travis.yml-Datei im Stammverzeichnis des Repositorys und schreiben Sie wie folgt.

yaml:.travis.yml


language: python
branches:
  only:
  - master
install:
- pip install pelican
- pip install ghp-import
- pip install markdown
script:
- make publish
- make github
env:
  global:
  - secure: [Token mit dem Befehl travis encrypt verschlüsselt]

Makefile bearbeiten

Bearbeiten Sie den "Make Github" -Teil von Pelican's Makefile. In meinem Fall war es ursprünglich so.

Makefile


PY?=python
PELICAN?=pelican
PELICANOPTS=

BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output

...(Unterlassung)...

GITHUB_PAGES_BRANCH=master

...(Unterlassung)...

github: publish
    ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
    git push origin $(GITHUB_PAGES_BRANCH)

.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github

Ändern Sie den letzten github: Publish Teil wie folgt.

Makefile(Überarbeitet)


github: publish
    ghp-import $(OUTPUTDIR)
    @git push -fq https://${GH_TOKEN}@github.com/$(TRAVIS_REPO_SLUG).git gh-pages > /dev/null

Drücken Sie .travis.yml auf master

Übernehmen Sie das geänderte Makefile mit .travis.yml und verschieben Sie es in den Zweig master. Wenn die Einstellungen korrekt sind, wird der Travis CI-Build ausgeführt, und der Pelican-Build und der Push zum Zweig "gh-pages" werden automatisch ausgeführt.

(Bonus) Verhindern Sie, dass der Build ausgeführt wird, wenn Sie eine Pull-Anforderung erstellen

Ich wollte eine Pull-Anfrage an "master" stellen, indem ich den Artikel vor der Veröffentlichung zu einem separaten Zweig machte, ihn nach dem Zusammenführen erstellte und den Artikel veröffentlichte. Sobald ich die PR gemacht hatte, lief der Build und ich war ungeduldig, aber es war in den Travis CI-Einstellungen.

SS_2016-01-09_14_15_01.png

(Bonus 2) Zeigen Sie das Abzeichen auf README an

Referenz: Ich habe versucht, Travis CI zu verwenden: Ich wollte ein Abzeichen in das GitHub-Repository einfügen

Klicken Sie in der Travis CI-Administrationskonsole auf das Build-Badge-Kennzeichen, wählen Sie Markdown aus und kopieren Sie den angezeigten Text.

SS_2016-01-08_1_39_01.png

Fügen Sie es in README.md ein und drücken Sie, um das Abzeichen zu sehen.

SS 2016-01-08 1.42.00.png

Recommended Posts

[Python] Automatisieren Sie Pelican Builds mit Travis CI
Automatisieren Sie Python-Tests mit CircleCI
Automatisieren Sie die Sushi-Herstellung mit Python
[Blender] Automatisieren Sie Blender-Add-On-Tests mit GitHub und TravisCI
Automatisieren Sie einfache Aufgaben mit Python Part0
Testen Sie nicht funktionalisierte Python-Programme mit GitLab CI
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Python beginnt mit ()
mit Syntax (Python)
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Bingo mit Python
Zundokokiyoshi mit Python
Statische Analyse von Python-Code mit GitLab CI
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Automatisieren Sie UI-Tests mit Selenium API | Crawlen von Websites mit Python
Automatisieren Sie Chrome mit Python und Selen auf Ihrem Chromebook
Einstellungen zum Testen von C ++ 11 Python-Modulen mit Travis CI
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
Sequentielle Suche mit Python
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln
Binarisierung mit OpenCV / Python
3. 3. KI-Programmierung mit Python
Kernel-Methode mit Python
Nicht blockierend mit Python + uWSGI
Scraping mit Python + PhantomJS
Tweets mit Python posten
Fahren Sie WebDriver mit Python
Verwenden Sie Mecab mit Python 3
[Python] Mit CGIHTTPServer umleiten