fix(netlify): use manual deploy
- https://docs.netlify.com/configure-builds/stop-or-activate-builds/
This commit is contained in:
		
							parent
							
								
									25b591301d
								
							
						
					
					
						commit
						ab57c90cec
					
				|  | @ -1,4 +1,4 @@ | |||
| image: alpine:latest | ||||
| image: node:lts-alpine | ||||
| 
 | ||||
| build_job: | ||||
|   stage: build | ||||
|  | @ -45,10 +45,13 @@ netlify: | |||
|   stage: deploy | ||||
| 
 | ||||
|   before_script: | ||||
|     - apk update && apk add curl | ||||
|     - npm install | ||||
|     - npm install netlify-cli -g | ||||
|     - netlify --telemetry-disable | ||||
| 
 | ||||
|   script: | ||||
|     - curl -X POST -d "{}" "https://api.netlify.com/build_hooks/$NETLIFY_BUILD_HOOK" | ||||
|     - npm run build | ||||
|     - netlify deploy --dir=public | ||||
| 
 | ||||
|   rules: | ||||
|     - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $NETLIFY == "true"' | ||||
|  |  | |||
							
								
								
									
										48
									
								
								src/build.js
								
								
								
								
							
							
						
						
									
										48
									
								
								src/build.js
								
								
								
								
							|  | @ -4,33 +4,43 @@ | |||
| 
 | ||||
| const { stream: gotStream } = require('got') | ||||
| const unzip = require('extract-zip') | ||||
| const { join } = require('path') | ||||
| const { mkdir, readdir, rm } = require('fs/promises') | ||||
| const { basename, join } = require('path') | ||||
| const { mkdir } = require('fs/promises') | ||||
| const { createWriteStream } = require('fs') | ||||
| const { pipeline } = require('stream/promises') | ||||
| 
 | ||||
| const rootPath = join(__dirname, '..') | ||||
| const tmpPath = join(rootPath, 'tmp') | ||||
| const zipPath = join(tmpPath, 'artifacts.zip') | ||||
| const artifactsUrl = 'https://gitlab.com/curben/malware-filter/-/jobs/artifacts/main/download?job=pages' | ||||
| const publicPath = join(rootPath, 'public') | ||||
| const artifacts = { | ||||
|   'https://gitlab.com/curben/urlhaus-filter/-/jobs/artifacts/main/download?job=pages': 'urlhaus-filter.zip', | ||||
|   'https://gitlab.com/curben/phishing-filter/-/jobs/artifacts/main/download?job=pages': 'phishing-filter.zip', | ||||
|   'https://gitlab.com/curben/pup-filter/-/jobs/artifacts/main/download?job=pages': 'pup-filter.zip', | ||||
|   'https://gitlab.com/curben/tracking-filter/-/jobs/artifacts/main/download?job=pages': 'tracking-filter.zip' | ||||
| } | ||||
| 
 | ||||
| const dl = async (link, filename) => { | ||||
|   const zipPath = join(tmpPath, filename) | ||||
|   console.log(`Downloading ${filename} from "${link}"`) | ||||
|   try { | ||||
|     await pipeline( | ||||
|       gotStream(link), | ||||
|       createWriteStream(zipPath) | ||||
|     ) | ||||
|   } catch ({ message }) { | ||||
|     throw new Error(JSON.stringify({ | ||||
|       error: message, | ||||
|       link, | ||||
|       filename | ||||
|     })) | ||||
|   } | ||||
| 
 | ||||
|   console.log(`Extracting ${basename(zipPath)}...`) | ||||
|   await unzip(zipPath, { dir: rootPath }) | ||||
| } | ||||
| 
 | ||||
| const f = async () => { | ||||
|   await mkdir(tmpPath, { recursive: true }) | ||||
| 
 | ||||
|   console.log(`Downloading artifacts.zip from "${artifactsUrl}"`) | ||||
|   await pipeline( | ||||
|     gotStream(artifactsUrl), | ||||
|     createWriteStream(zipPath) | ||||
|   ) | ||||
| 
 | ||||
|   console.log('Extracting artifacts.zip...') | ||||
|   await unzip(zipPath, { dir: rootPath }) | ||||
| 
 | ||||
|   const files = await readdir(publicPath) | ||||
|   for (const file of files) { | ||||
|     if (file.startsWith('oisd')) await rm(join(publicPath, file)) | ||||
|   } | ||||
|   await Promise.all(Object.entries(artifacts).map(([link, filename]) => { return dl(link, filename) })) | ||||
| } | ||||
| 
 | ||||
| f() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue