docker和git

可以利用Git , Docker和持续集成 (CI)的功能来简化TeX文档的编译,同时跟踪不同的变体和版本。 在这些技术之上,可以开发一种灵活的工作流以反映每个PDF中TeX文档的连续更改-例如,其渐进版本为document-v4.pdf 。 因此,让我们创建一个可以为我们自动化流程的工作流程。

1.目的

使用Git,Docker和持续集成(CI)来构建TeX文档,并将具有正确分支结构和版本控制的PDF上传到Dropbox。

2.工作流程

docker与git如何配合_git

3.要求

我们需要:

  • 比特桶
  • 的GitHub
  • 信号
  • 特拉维斯
  1. Dropbox帐户

3.1。 Dropbox上传器

注意:在配置Dropbox API时,建议仅将App Folder用作访问级别。

要将生成的PDF上传到Dropbox ,我们将使用Dropbox Uploader。

  1. 跟随Dropbox Uploader的README.md并在本地计算机上对其进行配置。
  2. 验证本地计算机上是否具有~/.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

  1. 转到存储库的设置-> Webhooks和服务->服务
  2. 选择特拉维斯CI

7.配置持续集成服务

7.1。 对于信号量

  1. 进行一次初始提交并推送到远程分支(如果为空的远程存储库),因为它至少需要一个远程分支。
  2. 前往SemaphoreCI
  3. 添加新项目
  4. 选择您的Git服务
  5. 选择你的仓库
  6. 选择分支(例如,主)

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。 配置文件

  1. 访问项目设置->配置文件
  2. 添加配置文件
  3. 将.dropbox_uploader添加到文件路径
  4. (可选)检查加密
  5. 粘贴~/.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