前段时间买了腾讯服务器和域名用于写个人小程序,但是小程序只使用域名用于CDN加速,(因为有域名备案的服务器,!!)小程序已经上架了(第一次推送:gitHub代码地址)用服务器太浪费了,于是开始折腾,写了一个人人博客网站。对于一个前端来说,编写前端页面并不是一件难事,只是需要一点时间而已。但是如何在服务器上只发布自己的网站,并不是所有前端同学都擅长的。本文用我认为比较简单的方法,教大家如何编写和发布自己的持续集成博客站点。用到的东西:vuePress,服务器和域名,gitHub仓库先看网站效果www.yingyinbi.com/常规先贴个搬砖的图片位置:ok,启动vuePressvuePress(官网)很简单,vue-驱动的、高质量的高性能静态站点生成器。其实就是用markdown来写博客。用官网一点点搭建好博客项目后,就可以按照以下方法发布自己的网站了。当然你也可以参考我写的:作者博客源码Node.js写一个简单的后台,很多前端都会用node.js,所以用node写后台更方便。代码在这里。如果vuePress-server基础薄弱,可以看看。也可以直接用(好评)。事实上,只有几行代码。constKoa=require('koa')constapp=newKoaconststatic=require('koa-static')constpath=require('path')app.use(static(path.join(__dirname,'../blog')))app.listen(80,()=>{console.log('success')})上面代码的意思是打开一个80端口,访问时静态文件目录为blog(index默认访问博客下的.html)。简单说说如何在服务器上运行这个程序server全局安装nodeserver全局安装git新建目录存放vuePress-server代码(假设这里的目录名是www)并将vuePress-server代码上传到gitHub仓库.和我们平时的clone代码一样,将代码clone到www目录下,在服务器全局安装pm2(有了node之后,可以使用npm安装)(传送门pm2)并使用pm2运行vuePress-server中的app.js启动80端口的服务,但是现在我们写的博客页面还没有发布到博客目录。下面介绍如何发布博客上传网页到博客目录:使用gitHubActions自动上传网页文件到服务器。gitHubActions是gitHub的持续集成服务。可以看一下阮一峰老师的文章:GitHubActions入门教程简单的说就是当我们将代码提交到远程仓库后,gitHubActions可以自动触发,执行我们事先设定的动作。这些动作是指一系列运行的进程,gitHubActions有一个动作市场,github用户可以在这里发布自己写的动作,也可以使用其他用户发布的动作。当你在gitHub上创建自己博客的仓库并上传代码后,在仓库界面可以看到这个Actions的入口:点击第二个红框创建上图第一个框是设置名称,第二个第一个框是要编写的工作流。以下是我的:#namename:CI#当master分支有push或pull_request时,会触发on:push:branches:[master]pull_request:branches:[master]#一个workflow运行由一个或多个组成jobsthatcanrunsequentiallyorinparalleljobs:#build是一个作业的名字,build:#job将运行的运行器类型onruns-on:ubuntu-latest#以下是一一进行:#切换到master分支-uses:actions/checkout@master#使用runnersshell运行单个命令#这一步是安装node.js-name:SetupNode.jsenvironmentuses:actions/setup-node@v2.1.0with:node-version:'12.x'#这一步是安装依赖,然后package-name:runinstallandbuildrun:yarn&&yarnbuild#上传服务器(下面的意思其实是用社区里别人打包的动作)#通过设置自己服务器的用户名和密码,将public打包文件夹中的所有内容上传到服务器/www/vuePress/blog-name:DeploytoServeruses:hengkx/ssh-deploy@v1.0.1with:#以下是参数USERNAME:${{secrets.DEPLOY_USER}}#敏感数据可以配置为secrets,用于用户信息安全,见下图PASSWORD:${{secrets.DEPLOY_PASSWORD}}HOST:${{secrets.DEPLOY_HOST}}POTY:22//默认为22,但是如果你之前没有写过,你是不能成功的。SOURCE:'public'TARGET:'/www/vuePress/blog'因为服务器的账号密码等信息不能公开,而这个gitHub仓库是公开的,所以gitHub在设置中有key保护机制。最后写博客提交到master分支添加代码即可。而且vuePress是用markdown方式写的,大部分程序员都可以使用。Markdown虽然不是最好看的文本格式,但是它对文本标题内容有分层的方式,图片和代码都可以,对程序员很友好。总结一些不足:gitHub有点慢,从运行到发布的动作不是很快。有时会出现动作运行失败的问题。目前笔者主要的博客平台是四物。所有项目:博客仓库博客节点服务博客站点效果
