docker和git
可以利用Git , Docker和持续集成 (CI)的功能来简化TeX文档的编译,同时跟踪不同的变体和版本。 在这些技术之上,可以开发一种灵活的工作流以反映每个PDF中TeX文档的连续更改-例如,其渐进版本为document-v4.pdf 。 因此,让我们创建一个可以为我们自动化流程的工作流程。
1.目的
使用Git,Docker和持续集成(CI)来构建TeX文档,并将具有正确分支结构和版本控制的PDF上传到Dropbox。
2.工作流程
3.要求
我们需要:
- 比特桶
- 的GitHub
- 信号
- 特拉维斯
- Dropbox帐户
3.1。 Dropbox上传器
注意:在配置Dropbox API时,建议仅将App Folder用作访问级别。
要将生成的PDF上传到Dropbox ,我们将使用Dropbox Uploader。
- 跟随Dropbox Uploader的README.md并在本地计算机上对其进行配置。
- 验证本地计算机上是否具有~/.dropbox_uploader文件。 我们稍后将使用此文件。
4.准备Git仓库
查看有关编写Dockerfile的最佳实践。
初始化Git( git init )并为git仓库使用以下目录结构:
├── docker
| ├── Dockerfile
├── document.tex
现在,对于docker/Dockerfile,我们将使用harshjv/texlive-2015镜像。 该图像包含TeX Live 2015 。
4.1。 Docker文件
FROM harshjv/texlive-2015
RUN tlmgr update --self --all
这将使用用于构建TeX文档的最新软件包来构建Docker映像。
5.添加您的TeX文档
将一些TeX文件添加到您的存储库。
6.配置Git服务
对于Webhooks /服务,我们需要按以下方式配置Git服务;
6.1。 对于Bitbucket
到目前为止,无需配置。
6.2。 对于GitHub
- 转到存储库的设置-> Webhooks和服务->服务
- 选择特拉维斯CI
7.配置持续集成服务
7.1。 对于信号量
- 进行一次初始提交并推送到远程分支(如果为空的远程存储库),因为它至少需要一个远程分支。
- 前往SemaphoreCI
- 添加新项目
- 选择您的Git服务
- 选择你的仓库
- 选择分支(例如,主)
7.选择您的帐户
在完成这些初始步骤之后,现在该配置配置和部署了。
7.1.1。 设定线程
该设置脚本使用最新的TeX软件包构建docker/Dockerfile并获取Dropbox Uploader脚本。
sudo docker build -t texlive docker
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod +x dropbox_uploader.sh
7.1.2。 构建线程
注意:对于master分支中的document.lex,document.pdf将上传为:
Dropbox/[YOUR_APP_FOLDER]/master/document-latest.pdf Dropbox/[YOUR_APP_FOLDER]/master/document-v[BUILD_NUMBER].pdf
该构建脚本编译document.lex LeX文档并构建document.pdf PDF。 然后,使用Dropbox Uploader,将版本化的PDF文件存储在分支机构的单个文件夹中。
sudo docker run -it -v ${SEMAPHORE_PROJECT_DIR}:/var/texlive texlive sh -c "pdflatex document.lex"
./dropbox_uploader.sh upload document.pdf ${BRANCH_NAME}/document-latest.pdf
./dropbox_uploader.sh upload document.pdf ${BRANCH_NAME}/document-v${SEMAPHORE_BUILD_NUMBER}.pdf
任何后续提交都将覆盖document-latest.pdf并创建一个新的document-v[BUILD_NUMBER].pdf文件。
7.1.3。 配置文件
- 访问项目设置->配置文件
- 添加配置文件
- 将.dropbox_uploader添加到文件路径
- (可选)检查加密
- 粘贴~/.dropbox_uploader内容
- 在MacOS X中, pbcopy ~/.dropbox_uploader
7.2。 对于特拉维斯
设置过程和构建的脚本保持不变。 将这些脚本放入单独的文件中,并创建一个.travis.yml文件。 有关相关说明,请参阅此帖子 。
8. Git提交和推送
是时候推送文档/更改了。
git add .
git commit -m "Add some details"
git push origin master
9.成功!
提示:如果要在更改后仅共享最新的PDF,请从Dropbox获取共享链接后,使用Bit.ly之类的URL缩短服务指向该最新文档。
为什么? 因为对于每个分支文件夹, [DOCUMENT_NAME]-latest.pdf将始终包含最新的PDF。
成功构建后,将在Dropbox/[YOUR_APP_FOLDER]/master文件夹中提供生成的PDF文件。
翻译自: https://opensource.com/business/15/12/git-docker-continuous-integration-tex-documents
docker和git