使用NPM构建上传软件包
场景概述
编译构建服务支持通过yaml文件配置构建脚本,用户可以将构建时需要配置的构建环境、构建参数、构建命令、构建步骤等操作,通过yaml语法编写成build.yml文件实现,并且将build.yml文件和被构建的代码一起存储到代码仓库。执行构建任务时,系统会以build.yml文件作为构建脚本执行构建任务,使构建过程可追溯、可还原,安全可信。本节以使用Npm构建为例。
前提条件
已有可用项目,如果没有,请新建项目。
新建代码仓
- 使用华为云账号登录软件开发生产线首页。
- 单击需要创建代码仓的项目名称。
- 在页面左侧目录中选择图1所示。 ,如
- 单击“普通新建”。
- 根据表1填写参数,单击“确定”。
表1 新建代码仓 参数名称
参数说明
代码仓库名称
自定义代码仓名称。例如:npm_yml_build。
- 以数字、字母或者“_”开头。
- 可包含“.”和“-”。
- 不能以“.git”、“.atom”或者“.”结尾。
描述
对代码仓的描述。
选择gitignore
根据编程语言选择“.gitignore”,例如:Java。
权限设置
勾选全部。
- 允许项目内人员访问仓库:选择后会自动将项目中的项目经理设为仓库管理员,开发人员设为仓库普通成员。当项目新增这两个角色时,也会自动同步到已经存在的仓库中。
- 允许生成README文件:可以通过编辑README文件,记录项目的架构、编写目的等信息,相当于对整个仓库的一种注释。
- 自动创建代码检查任务(免费):仓库创建完成后在代码检查任务列表中,可看到对应仓库的检查任务。
是否公开
设置为“私有”。
- 私有:仓库仅对仓库成员可见,仓库成员可访问仓库或者提交代码。
- 公开只读:仓库对所有访客公开只读,但不出现在访客的仓库列表及搜索中,您可以选择开源许可证作为备注。
创建build.yml文件
- 在页面导航中选择 。
- 单击新建代码仓中创建的代码仓名称。
- 单击图2所示。 ,如
- 根据表2填写参数信息,单击“确定”。
- 单击步骤4创建的目录名称。
- 单击图3所示。 ,如
- 文件命名为“build.yml”,将如下代码拷贝到文件中。
# This YAML is the default template and can be modified based on this --- version: '2.0' steps: BUILD: - npm: inputs: #check: #project_dir: . command: | export PATH=$PATH:~/.npm-global/bin #设置缓存目录 npm config set cache /npmcache npm config set registry http://mirrors.tools.huawei.com/npm/ npm config set disturl http://mirrors.tools.huawei.com/nodejs npm config set sass_binary_site http://mirrors.tools.huawei.com/node-sass/ npm config set phantomjs_cdnurl http://mirrors.tools.huawei.com/phantomjs npm config set chromedriver_cdnurl http://mirrors.tools.huawei.com/chromedriver npm config set operadriver_cdnurl http://mirrors.tools.huawei.com/operadriver npm config set electron_mirror http://mirrors.tools.huawei.com/electron/ npm config set python_mirror http://mirrors.tools.huawei.com/python npm config set prefix '~/.npm-global' npm install --verbose zip -r ./nodeserver.zip ./ - upload_artifact: inputs: path: "./nodeserver.zip"
- 单击“确定”。
创建package.json文件
创建server.js文件
- 在根目录下,参考步骤6和步骤7,创建名为“server.js”的文件。文件中代码如下:
'use strict'; const express =require('express'); // Constants const PORT=8080; const HOST='127.0.0.1'; // App const app =express(); app.get('/',(req, res)=>{ res.send('Hello world\n'); }); app.listen(PORT,HOST); console.log(`Running on http://${HOST}:${PORT}`);
- 单击“确定”。