mirror of https://github.com/certd/certd
				
				
				
			
		
			
				
	
	
		
			107 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
| import http from 'axios'
 | |
| import fs from 'fs'
 | |
| //读取 packages/core/pipline/package.json的版本号
 | |
| import {default as packageJson} from './packages/core/pipeline/package.json' assert { type: "json" };
 | |
| 
 | |
| const certdVersion = packageJson.version
 | |
| console.log("certdVersion", certdVersion)
 | |
| 
 | |
| // 同步npmmirror的包
 | |
| async function getPackages(directoryPath) {
 | |
|     return new Promise((resolve, reject) => {
 | |
|         // 读取目录下的文件和目录列表
 | |
|         fs.readdir(directoryPath, {withFileTypes: true}, (err, files) => {
 | |
|             if (err) {
 | |
|                 console.log('无法读取目录:', err);
 | |
|                 reject(err)
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             // 过滤仅保留目录
 | |
|             const directories = files
 | |
|                 .filter(file => file.isDirectory())
 | |
|                 .map(directory => directory.name);
 | |
| 
 | |
|             console.log('目录列表:', directories);
 | |
|             resolve(directories)
 | |
|         });
 | |
|     })
 | |
| 
 | |
| }
 | |
| 
 | |
| async function getAllPackages() {
 | |
|     const base = await getPackages("./packages/core")
 | |
|     const plugins = await getPackages("./packages/plugins")
 | |
|     const libs = await getPackages("./packages/libs")
 | |
| 
 | |
|     return base.concat(plugins).concat(libs)
 | |
| }
 | |
| 
 | |
| async function sync() {
 | |
|     const packages = await getAllPackages()
 | |
|     for (const pkg of packages) {
 | |
|         await http({
 | |
|             url: `http://registry-direct.npmmirror.com/@certd/${pkg}/sync?sync_upstream=true`,
 | |
|             method: 'PUT',
 | |
|             headers: {
 | |
|                 "Content-Type": "application/json"
 | |
|             },
 | |
|             data: {}
 | |
|         })
 | |
|         console.log(`sync success:${pkg}`)
 | |
|         await sleep(30*1000)
 | |
|     }
 | |
| }
 | |
| 
 | |
| // curl -X PUT https://registry-direct.npmmirror.com/@certd/plugin-cert/sync?sync_upstream=true
 | |
| 
 | |
| const certdImageBuild = "http://flow-openapi.aliyun.com/pipeline/webhook/4zgFk3i4RZEMGuQzlOcI"
 | |
| const certdImageRun = "http://flow-openapi.aliyun.com/pipeline/webhook/lzCzlGrLCOHQaTMMt0mG"
 | |
| const webhooks = [certdImageBuild,certdImageRun]
 | |
| 
 | |
| async function sleep(time) {
 | |
|     return new Promise(resolve => {
 | |
|         setTimeout(resolve, time)
 | |
|     })
 | |
| }
 | |
| 
 | |
| async function triggerBuild() {
 | |
|     await sleep(60000)
 | |
|     for (const webhook of webhooks) {
 | |
|         await http({
 | |
|             url: webhook,
 | |
|             method: 'POST',
 | |
|             headers: {
 | |
|                 "Content-Type": "application/json"
 | |
|             },
 | |
|             data: {
 | |
|                 'CERTD_VERSION': certdVersion
 | |
|             }
 | |
|         })
 | |
|         console.log(`webhook success:${webhook}`)
 | |
|         await sleep(30*60*1000)
 | |
|     }
 | |
| 
 | |
| }
 | |
| 
 | |
| async function start() {
 | |
|     // await build()
 | |
|     console.log("等待60秒")
 | |
|     await sleep(100* 1000)
 | |
|     await sync()
 | |
|     await sleep(100 * 1000)
 | |
|     await triggerBuild()
 | |
| }
 | |
| 
 | |
| start()
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * 打包前 修改 lerna
 | |
|  * nodemodules里面搜索如下
 | |
|  * return childProcess.exec("git", ["add", "--", ...files], execOpts);
 | |
|  *
 | |
|  * ('git', ['add', '--', ...files]
 | |
|  * ('git', ['add', '.']
 | |
|  */
 |