如何从TravisCI到WordPress.org部署WordPress插件

并非每个人都喜欢颠覆。 如果您使用Git来管理WordPress插件开发,则保持Git存储库和WordPress.org SVN存储库同步是很繁琐的。 幸运的是,我们可以在测试后使用TravisCI部署提供程序自动执行SVN部署。

先决条件

在继续之前,您需要以下这些:

  1. GitHub帐户
  2. TravisCI帐户
  3. 插件源代码
  4. WordPress.org插件SVN存储库(在插件审查批准后得到。)

首先推送到GitHub

为了使用TravisCI,我们必须在GitHub上托管插件存储库。

首先,通过转到此页面并填写存储库名称,在GitHub上创建一个新的存储库。

create new GitHub repository
GitHub new repository page

然后,我们将所有插件文件提交到Git中,并将其推送到GitHub存储库中。 切记用您的URL替换远程URL。

$ cd /path/to/plugin/directory
$ git init
$ git add -A
$ git commit -m "first commit"
$ git remote add origin https://github.com/TangRufus/tutsplus-dpl-demo.git
$ git push -u origin master

连接TravisCI

通过转到TravisCI帐户页面并打开存储库,将GitHub存储库与TravisCI连接。 如果新创建的存储库未显示在列表中,请单击右上角的同步帐户

TravisCI帐户设置

你们都准备好了 每当您推送新的提交或有人向GitHub发出提取请求时,都会触发TravisCI上的构建。

首先在TravisCI上构建

TravisCI在存储库的根目录中使用名为.travis.yml的YAML文件.travis.yml定义构建。 从构建定制文档中了解更多信息,以了解如何控制构建生命周期。

这是一个基本配置文件,指示TravisCI在PHP 7.07.1上运行构建。 由于测试不在本教程的讨论范围之内,因此我将实际的测试命令替换为echo 'Tested'

# .travis.yml

language: php

sudo: false

php:
  - 7.0
  - 7.1

script:
  # Run your tests here.
  - echo 'Tested'

提交此文件并将其推送到GitHub。 TravisCI构建将自动触发。

$ git add .travis.yml
$ git ci -am "Add .travis.yml"
$ git push origin master
TravisCI当前版本

添加部署提供程序配置

如果满足通过的测试并且满足预定义的条件( on部分中),则部署提供程序将运行。 TravisCI提供了将近40个官方部署提供商 。 可悲的是,它们都不支持WordPress.org子版本库。 因此,我创建了自己的自定义提供程序。 您可以在GitHub和它的pull request上找到它。

要使用它,请将这些行添加到.travis.yml

before_deploy:
  - mkdir build
  - cp LICENSE build
  - cp README.txt build
  - cp remove-medium-cross-links.php build

deploy:
  - provider: wordpress-plugin
    edge:
      source: TypistTech/dpl
      branch: add-wordpress-plugin-deployment
    on:
      php: 7.1
      tags: true
      repo: TangRufus/tutsplus-dpl-demo
    slug: remove-medium-cross-links
    username: tangrufus
    password: $WORDPRESS_ORG_PASSWORD
    build_dir: build

配置说明

before_deploy

before_deploy部分将三个文件复制到build目录中,该目录将被检查到WordPress.org子版本库中。 在现实世界中,这是您要运行gulpgrunt任务以准备可用于生产环境的插件的地方。

不要将测试文件或任何不必要的文件复制到内部build因为将整个build目录发布给用户,并且用户不需要您的测试文件。

provideredge

我们告诉TravisCI从add-wordpress-plugin-deployment分支https://github.com/TypistTech/dpl安装我的提供程序。 合并拉取请求后 ,就不需要edge部分了。

on

on部分控制是否应执行部署。 仅在满足所有要求时才触发部署。

在以上示例中,我们仅在以下情况下才部署到WordPress.org:

  1. 这是一个PHP 7.1版本
  2. 这是一个标记的提交
  3. 它是由TangRufus / tutsplus-dpl-demo存储库触发的(fork和pull请求不会触发部署)
slug

插件的插件。

如果您插件的URL是https://wordpress.org/plugins/my-awesome-plugin/ ,则my-awesome-plugin是插件的插件。

username

提交插件以供审批的WordPress.org帐户用户名。

password

WordPress.org帐户的密码。 请勿将此密码以纯文本格式保存在.travis.yml中!

在上面的示例中,我们使用$WORDPRESS_ORG_PASSWORD环境变量,该变量可以在TravisCI Web仪表板上设置。 从齿轮菜单中选择设置 ,然后在环境变量部分中单击添加 。 切勿启用“在构建日志中显示值”选项!

TravisCI环境变量设置
build_dir

此目录中的所有内容都将提交到WordPress.org子版本库,即将包含在可下载的zip文件中。

我们将其设置为build因为我们在before_deploy期间将插件文件复制到了build中。

标记

假设我们已经修复了一些错误,并准备将新版本发布到WordPress.org。

这些命令将更改提交到master分支,但不触发部署:

$ git add -A
$ git commit -am "Bug fix"
$ git push origin master

仅带标记的提交触发部署:

$ git tag -a 1.0.17 -m "Version bump 1.0.17"
$ git push origin master --tags

结果

返回TravisCI并打开PHP 7.1构建日志。 您应该看到已记录部署。

Building dpl gem locally with source TypistTech/dpl and branch add-wordpress-plugin-deployment
Installing deploy dependencies

!!! WordPress Plugin support is experimental !!!


Preparing deploy
Finding configuration for WordPress plugin deployment...
Slug: remove-medium-cross-links
Username: tangrufus
Password found
Build Directory: build
Assets Directory: not found
Validating configuration for WordPress plugin deployment...
Configuration looks good
Going to deloy tag: 1.0.17
Cleaning up git repository with `git stash --all`. If you need build artifacts for deployment, set `deploy.skip_cleanup: true`. See https://docs.travis-ci.com/user/deployment/#Uploading-Files.
/usr/lib/git-core/git-stash: 186: /usr/lib/git-core/git-stash: cannot create /home/travis/build/TangRufus/tutsplus-dpl-demo/.git/logs/refs/stash: Directory nonexistent

Deploying application
Checking out https://plugins.svn.wordpress.org/remove-medium-cross-links
Clearing /tmp/d20170513-3291-1yh7vqo/trunk...
Removing deleted files from subversion...
D         /tmp/d20170513-3291-1yh7vqo/trunk
Temporary removing trunk and assets(if assets_dir is set)
Deleting       tmp/d20170513-3291-1yh7vqo/trunk

Committed revision 1656616.
Copying build to /tmp/d20170513-3291-1yh7vqo/trunk...
Copying /tmp/d20170513-3291-1yh7vqo/trunk to /tmp/d20170513-3291-1yh7vqo/tags/1.0.17...
Adding new files to subversion...
A         /tmp/d20170513-3291-1yh7vqo/trunk
A         /tmp/d20170513-3291-1yh7vqo/trunk/LICENSE
A         /tmp/d20170513-3291-1yh7vqo/trunk/README.txt
A         /tmp/d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php
A         /tmp/d20170513-3291-1yh7vqo/tags/1.0.17
A         /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/LICENSE
A         /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/README.txt
A         /tmp/d20170513-3291-1yh7vqo/tags/1.0.17/remove-medium-cross-links.php
Committing 1.0.17
Adding         tmp/d20170513-3291-1yh7vqo/tags/1.0.17
Adding         tmp/d20170513-3291-1yh7vqo/tags/1.0.17/LICENSE
Adding         tmp/d20170513-3291-1yh7vqo/tags/1.0.17/README.txt
Adding         tmp/d20170513-3291-1yh7vqo/tags/1.0.17/remove-medium-cross-links.php
Adding         tmp/d20170513-3291-1yh7vqo/trunk
Adding         tmp/d20170513-3291-1yh7vqo/trunk/LICENSE
Adding         tmp/d20170513-3291-1yh7vqo/trunk/README.txt
Adding         tmp/d20170513-3291-1yh7vqo/trunk/remove-medium-cross-links.php
Transmitting file data ......
Committed revision 1656617.

并在WordPress.org跟踪( https://plugins.trac.wordpress.org/browser/ <your-plugin-slug>)上:

WordPress插件颠覆追踪

注意事项

svn commit两次svn commit

由于TravisCI附带了一个旧版本的subversion ,该版本不能与子目录很好地配合使用,因此我会svn commit两次。

第一次svn commit删除trunk内的所有内容。 第二个svn commit build_dir所有内容从build_dir复制到trunk

实验性

提供程序仍处于试验阶段,尚未与TravisCI的官方回购合并。 您可以跟踪TravisCI对其拉取请求的反馈。

使用edge不会将我的分支合并到上游主服务器中。 我的分支机构有可能在官方仓库的后面。 发生这种情况时,您可以分叉我的分支并对其重新设置基础,然后将.travis.yml中的source .travis.yml为GitHub存储库。

包起来

要使用此部署提供程序

  1. 将插件存储库托管在GitHub上。
  2. 连接GitHub和TravisCI。
  3. 将配置添加到.travis.yml
  4. 推送标签。

希望以上所有内容都能帮助您更快地将插件部署到WordPress.org。

WordPress的经济非常活跃。 有主题,插件,库和许多其他产品可帮助您构建站点和项目。 该平台的开源性质也使它成为提高编程技能的绝佳选择。 无论如何,您都可以在Envato Marketplace中看到我们提供的所有内容。

谢谢阅读!

翻译自: https://code.tutsplus.com/tutorials/how-to-deploy-wordpress-plugin-from-travisci-to-wordpressorg--cms-28831

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值