Add CI
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build on Push and create Release on Tag / build (push) Successful in 3m55s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build on Push and create Release on Tag / build (push) Successful in 3m55s
				
			This commit is contained in:
		
							parent
							
								
									5322944ad9
								
							
						
					
					
						commit
						a079298433
					
				
					 2 changed files with 52 additions and 9 deletions
				
			
		|  | @ -1,7 +1,9 @@ | |||
| name: Create Release on Tag Push | ||||
| name: Build on Push and create Release on Tag | ||||
| 
 | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|     tags: | ||||
|       - "v*" | ||||
| 
 | ||||
|  | @ -20,7 +22,7 @@ jobs: | |||
|           node-version: 20 | ||||
|           registry-url: "https://registry.npmjs.org" | ||||
| 
 | ||||
|         # Install pnpm | ||||
|       # Install pnpm | ||||
|       - name: Install pnpm | ||||
|         uses: pnpm/action-setup@v4 | ||||
|         id: pnpm-install | ||||
|  | @ -28,6 +30,12 @@ jobs: | |||
|           version: 8 | ||||
|           run_install: false | ||||
| 
 | ||||
|       # Validate Tag Matches JSON Versions | ||||
|       - name: Validate Tag Matches JSON Versions | ||||
|         if: github.ref_type == 'tag' | ||||
|         run: | | ||||
|           node scripts/validate_tag.cjs ${{ github.ref }} | ||||
| 
 | ||||
|       # Get pnpm store directory | ||||
|       - name: Get pnpm store directory | ||||
|         id: pnpm-cache | ||||
|  | @ -52,11 +60,22 @@ jobs: | |||
|       - name: Build for production | ||||
|         run: pnpm build | ||||
| 
 | ||||
|       - name: Release | ||||
|         uses: ncipollo/release-action@v1 | ||||
|       # Move file | ||||
|       - name: Move file | ||||
|         run: mkdir built; mv package.zip built/package.zip | ||||
| 
 | ||||
|       # Upload artifacts | ||||
|       - name: Upload artifacts | ||||
|         uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           allowUpdates: true | ||||
|           artifactErrorsFailBuild: true | ||||
|           artifacts: "package.zip" | ||||
|           token: ${{ secrets.GITHUB_TOKEN }} | ||||
|           prerelease: false | ||||
|           path: built/package.zip | ||||
|           overwrite: true | ||||
| 
 | ||||
|       # Create Forgejo Release | ||||
|       - name: Create Forgejo Release | ||||
|         if: github.ref_type == 'tag' | ||||
|         uses: actions/forgejo-release@v1 | ||||
|         with: | ||||
|           direction: upload | ||||
|           release-dir: built | ||||
|           token: ${{ secrets.FORGE_TOKEN }} | ||||
							
								
								
									
										24
									
								
								scripts/validate_tag.cjs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								scripts/validate_tag.cjs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| const fs = require('fs'); | ||||
| const path = require('path'); | ||||
| 
 | ||||
| const [tagName] = process.argv.slice(2); // Get tag from CLI arguments
 | ||||
| if (!tagName) { | ||||
|   console.error('Error: No tag name provided.'); | ||||
|   process.exit(1); | ||||
| } | ||||
| 
 | ||||
| const TAG_VERSION = tagName.replace('refs/tags/v', ''); | ||||
| 
 | ||||
| try { | ||||
|   const packageJson = JSON.parse(fs.readFileSync(path.resolve('package.json'), 'utf8')); | ||||
|   const pluginJson = JSON.parse(fs.readFileSync(path.resolve('plugin.json'), 'utf8')); | ||||
| 
 | ||||
|   if (TAG_VERSION !== packageJson.version || TAG_VERSION !== pluginJson.version) { | ||||
|     console.error(`Error: Tag version (${TAG_VERSION}) does not match package.json (${packageJson.version}) or plugin.json (${pluginJson.version})`); | ||||
|     process.exit(1); | ||||
|   } | ||||
|   console.log('Tag version matches both JSON files.'); | ||||
| } catch (err) { | ||||
|   console.error('Failed to read or parse JSON files:', err.message); | ||||
|   process.exit(1); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue