Improve logging (#58)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									1a8a264b95
								
							
						
					
					
						commit
						7433b42479
					
				
							
								
								
									
										4
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -72,9 +72,9 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         include: | ||||
|           - tag-match: '\d{1,3}.\d{1,3}.\d{1,3}' | ||||
|           - tag-match: '\d.\d.\d' | ||||
|             tag-match-group: '0' | ||||
|           - tag-match: '\d{1,3}.\d{1,3}' | ||||
|           - tag-match: '\d.\d' | ||||
|             tag-match-group: '0' | ||||
|           - tag-match: 'v(.*)' | ||||
|             tag-match-group: '1' | ||||
|  | ||||
| @ -420,9 +420,7 @@ tags: | | ||||
| ```yaml | ||||
| tags: | | ||||
|   # minimal | ||||
|   type=match,pattern=\d{8} | ||||
|   # double quotes if comma in pattern | ||||
|   type=match,"pattern=\d{1,3}.\d{1,3}.\d{1,3}" | ||||
|   type=match,pattern=\d.\d.\d | ||||
|   # define match group | ||||
|   type=match,pattern=v(.*),group=1 | ||||
|   # use custom value instead of git tag | ||||
| @ -435,7 +433,7 @@ a custom value through `value` attribute. | ||||
| 
 | ||||
| | Git tag                 | Pattern                       | Group   | Output                 | | ||||
| |-------------------------|-------------------------------|---------|------------------------| | ||||
| | `v1.2.3`                | `\d{1,3}.\d{1,3}.\d{1,3}`     | `0`     | `1.2.3`                | | ||||
| | `v1.2.3`                | `\d.\d.\d`                    | `0`     | `1.2.3`                | | ||||
| | `v2.0.8-beta.67`        | `v(.*)`                       | `1`     | `2.0.8-beta.67`        | | ||||
| | `v2.0.8-beta.67`        | `v(\d.\d)`                    | `1`     | `2.0`                  | | ||||
| | `20200110-RC2`          | `\d+`                         | `0`     | `20200110`             | | ||||
|  | ||||
| @ -713,7 +713,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -744,7 +744,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=^v(\\d{1,3}.\\d{1,3}.\\d{1,3})$",group=1` | ||||
|           `type=match,"pattern=^v(\\d.\\d.\\d)$",group=1` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -775,7 +775,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}.\\d{1,3}-(alpha|beta).\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d.\\d-(alpha|beta).\\d+"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -806,7 +806,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -837,7 +837,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=/^v(\\d{1,3}.\\d{1,3}.\\d{1,3})$/ig",group=1`, | ||||
|           `type=match,"pattern=/^v(\\d.\\d.\\d)$/ig",group=1`, | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -866,7 +866,7 @@ describe('tag', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -1030,7 +1030,7 @@ describe('tag', () => { | ||||
|         tags: [ | ||||
|           `type=raw,priority=2000,foo`, | ||||
|           `type=semver,pattern={{version}}`, | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -1189,7 +1189,7 @@ describe('latest', () => { | ||||
|       { | ||||
|         images: ['user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
| @ -1246,7 +1246,7 @@ describe('latest', () => { | ||||
|       { | ||||
|         images: ['org/app', 'ghcr.io/user/app'], | ||||
|         tags: [ | ||||
|           `type=match,"pattern=\\d{1,3}.\\d{1,3}.\\d{1,3}"` | ||||
|           `type=match,"pattern=\\d.\\d.\\d"` | ||||
|         ] | ||||
|       } as Inputs, | ||||
|       { | ||||
|  | ||||
| @ -13,7 +13,7 @@ describe('transform', () => { | ||||
|         `type=raw,foo`, | ||||
|         `type=edge`, | ||||
|         `type=semver,pattern={{version}}`, | ||||
|         `type=match,"pattern=\\d{1,3}.\\d{1,3}.\\d{1,3}"` | ||||
|         `type=match,"pattern=\\d.\\d.\\d",group=0` | ||||
|       ], | ||||
|       [ | ||||
|         { | ||||
| @ -44,7 +44,7 @@ describe('transform', () => { | ||||
|             "enable": "true", | ||||
|             "prefix": "", | ||||
|             "suffix": "", | ||||
|             "pattern": "\\d{1,3}.\\d{1,3}.\\d{1,3}", | ||||
|             "pattern": "\\d.\\d.\\d", | ||||
|             "group": "0", | ||||
|             "value": "" | ||||
|           } | ||||
| @ -204,7 +204,7 @@ describe('parse', () => { | ||||
|       false | ||||
|     ], | ||||
|     [ | ||||
|       `type=match,enable=true,"pattern=^v(\\d{1,3}.\\d{1,3}.\\d{1,3})$",group=1`, | ||||
|       `type=match,enable=true,"pattern=^v(\\d.\\d.\\d)$",group=1`, | ||||
|       { | ||||
|         type: Type.Match, | ||||
|         attrs: { | ||||
| @ -212,7 +212,7 @@ describe('parse', () => { | ||||
|           "enable": "true", | ||||
|           "prefix": "", | ||||
|           "suffix": "", | ||||
|           "pattern": "^v(\\d{1,3}.\\d{1,3}.\\d{1,3})$", | ||||
|           "pattern": "^v(\\d.\\d.\\d)$", | ||||
|           "group": "1", | ||||
|           "value": "" | ||||
|         } | ||||
|  | ||||
							
								
								
									
										74
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -99,12 +99,32 @@ exports.asyncForEach = (array, callback) => __awaiter(void 0, void 0, void 0, fu | ||||
| /***/ }), | ||||
| 
 | ||||
| /***/ 3716: | ||||
| /***/ ((__unused_webpack_module, exports) => { | ||||
| /***/ (function(__unused_webpack_module, exports, __webpack_require__) { | ||||
| 
 | ||||
| "use strict"; | ||||
| 
 | ||||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||||
|     if (k2 === undefined) k2 = k; | ||||
|     Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||||
| }) : (function(o, m, k, k2) { | ||||
|     if (k2 === undefined) k2 = k; | ||||
|     o[k2] = m[k]; | ||||
| })); | ||||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||||
|     Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||||
| }) : function(o, v) { | ||||
|     o["default"] = v; | ||||
| }); | ||||
| var __importStar = (this && this.__importStar) || function (mod) { | ||||
|     if (mod && mod.__esModule) return mod; | ||||
|     var result = {}; | ||||
|     if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||||
|     __setModuleDefault(result, mod); | ||||
|     return result; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.Transform = void 0; | ||||
| const core = __importStar(__webpack_require__(2186)); | ||||
| function Transform(inputs) { | ||||
|     const flavor = { | ||||
|         latest: 'auto', | ||||
| @ -137,6 +157,11 @@ function Transform(inputs) { | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     core.startGroup(`Processing flavor input`); | ||||
|     core.info(`latest=${flavor.latest}`); | ||||
|     core.info(`prefix=${flavor.prefix}`); | ||||
|     core.info(`suffix=${flavor.suffix}`); | ||||
|     core.endGroup(); | ||||
|     return flavor; | ||||
| } | ||||
| exports.Transform = Transform; | ||||
| @ -690,12 +715,32 @@ exports.Meta = Meta; | ||||
| 
 | ||||
| "use strict"; | ||||
| 
 | ||||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||||
|     if (k2 === undefined) k2 = k; | ||||
|     Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||||
| }) : (function(o, m, k, k2) { | ||||
|     if (k2 === undefined) k2 = k; | ||||
|     o[k2] = m[k]; | ||||
| })); | ||||
| var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||||
|     Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||||
| }) : function(o, v) { | ||||
|     o["default"] = v; | ||||
| }); | ||||
| var __importStar = (this && this.__importStar) || function (mod) { | ||||
|     if (mod && mod.__esModule) return mod; | ||||
|     var result = {}; | ||||
|     if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||||
|     __setModuleDefault(result, mod); | ||||
|     return result; | ||||
| }; | ||||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||||
|     return (mod && mod.__esModule) ? mod : { "default": mod }; | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||
| exports.Parse = exports.Transform = exports.DefaultPriorities = exports.RefEvent = exports.Type = void 0; | ||||
| exports.Parse = exports.Transform = exports.DefaultPriorities = exports.Tag = exports.RefEvent = exports.Type = void 0; | ||||
| const sync_1 = __importDefault(__webpack_require__(8750)); | ||||
| const core = __importStar(__webpack_require__(2186)); | ||||
| var Type; | ||||
| (function (Type) { | ||||
|     Type["Schedule"] = "schedule"; | ||||
| @ -712,6 +757,19 @@ var RefEvent; | ||||
|     RefEvent["Tag"] = "tag"; | ||||
|     RefEvent["PR"] = "pr"; | ||||
| })(RefEvent = exports.RefEvent || (exports.RefEvent = {})); | ||||
| class Tag { | ||||
|     constructor() { | ||||
|         this.attrs = {}; | ||||
|     } | ||||
|     toString() { | ||||
|         const out = [`type=${this.type}`]; | ||||
|         for (let attr in this.attrs) { | ||||
|             out.push(`${attr}=${this.attrs[attr]}`); | ||||
|         } | ||||
|         return out.join(','); | ||||
|     } | ||||
| } | ||||
| exports.Tag = Tag; | ||||
| exports.DefaultPriorities = { | ||||
|     [Type.Schedule]: '1000', | ||||
|     [Type.Semver]: '900', | ||||
| @ -735,7 +793,7 @@ function Transform(inputs) { | ||||
|     for (const input of inputs) { | ||||
|         tags.push(Parse(input)); | ||||
|     } | ||||
|     return tags.sort((tag1, tag2) => { | ||||
|     const sorted = tags.sort((tag1, tag2) => { | ||||
|         if (Number(tag1.attrs['priority']) < Number(tag2.attrs['priority'])) { | ||||
|             return 1; | ||||
|         } | ||||
| @ -744,6 +802,12 @@ function Transform(inputs) { | ||||
|         } | ||||
|         return 0; | ||||
|     }); | ||||
|     core.startGroup(`Processing tags input`); | ||||
|     for (const tag of sorted) { | ||||
|         core.info(tag.toString()); | ||||
|     } | ||||
|     core.endGroup(); | ||||
|     return sorted; | ||||
| } | ||||
| exports.Transform = Transform; | ||||
| function Parse(s) { | ||||
| @ -751,9 +815,7 @@ function Parse(s) { | ||||
|         relaxColumnCount: true, | ||||
|         skipLinesWithEmptyValues: true | ||||
|     })[0]; | ||||
|     const tag = { | ||||
|         attrs: {} | ||||
|     }; | ||||
|     const tag = new Tag(); | ||||
|     for (const field of fields) { | ||||
|         const parts = field.toString().split('=', 2); | ||||
|         if (parts.length == 1) { | ||||
|  | ||||
| @ -1,3 +1,5 @@ | ||||
| import * as core from '@actions/core'; | ||||
| 
 | ||||
| export interface Flavor { | ||||
|   latest: string; | ||||
|   prefix: string; | ||||
| @ -38,5 +40,11 @@ export function Transform(inputs: string[]): Flavor { | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   core.startGroup(`Processing flavor input`); | ||||
|   core.info(`latest=${flavor.latest}`); | ||||
|   core.info(`prefix=${flavor.prefix}`); | ||||
|   core.info(`suffix=${flavor.suffix}`); | ||||
|   core.endGroup(); | ||||
| 
 | ||||
|   return flavor; | ||||
| } | ||||
|  | ||||
							
								
								
									
										35
									
								
								src/tag.ts
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								src/tag.ts
									
									
									
									
									
								
							| @ -1,4 +1,5 @@ | ||||
| import csvparse from 'csv-parse/lib/sync'; | ||||
| import * as core from '@actions/core'; | ||||
| 
 | ||||
| export enum Type { | ||||
|   Schedule = 'schedule', | ||||
| @ -16,9 +17,21 @@ export enum RefEvent { | ||||
|   PR = 'pr' | ||||
| } | ||||
| 
 | ||||
| export interface Tag { | ||||
|   type: Type; | ||||
|   attrs: Record<string, string>; | ||||
| export class Tag { | ||||
|   public type?: Type; | ||||
|   public attrs: Record<string, string>; | ||||
| 
 | ||||
|   constructor() { | ||||
|     this.attrs = {}; | ||||
|   } | ||||
| 
 | ||||
|   public toString(): string { | ||||
|     const out: string[] = [`type=${this.type}`]; | ||||
|     for (let attr in this.attrs) { | ||||
|       out.push(`${attr}=${this.attrs[attr]}`); | ||||
|     } | ||||
|     return out.join(','); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| export const DefaultPriorities: Record<Type, string> = { | ||||
| @ -42,10 +55,11 @@ export function Transform(inputs: string[]): Tag[] { | ||||
|       `type=ref,event=${RefEvent.PR}` | ||||
|     ]; | ||||
|   } | ||||
| 
 | ||||
|   for (const input of inputs) { | ||||
|     tags.push(Parse(input)); | ||||
|   } | ||||
|   return tags.sort((tag1, tag2) => { | ||||
|   const sorted = tags.sort((tag1, tag2) => { | ||||
|     if (Number(tag1.attrs['priority']) < Number(tag2.attrs['priority'])) { | ||||
|       return 1; | ||||
|     } | ||||
| @ -54,6 +68,14 @@ export function Transform(inputs: string[]): Tag[] { | ||||
|     } | ||||
|     return 0; | ||||
|   }); | ||||
| 
 | ||||
|   core.startGroup(`Processing tags input`); | ||||
|   for (const tag of sorted) { | ||||
|     core.info(tag.toString()); | ||||
|   } | ||||
|   core.endGroup(); | ||||
| 
 | ||||
|   return sorted; | ||||
| } | ||||
| 
 | ||||
| export function Parse(s: string): Tag { | ||||
| @ -62,10 +84,7 @@ export function Parse(s: string): Tag { | ||||
|     skipLinesWithEmptyValues: true | ||||
|   })[0]; | ||||
| 
 | ||||
|   const tag = { | ||||
|     attrs: {} | ||||
|   } as Tag; | ||||
| 
 | ||||
|   const tag = new Tag(); | ||||
|   for (const field of fields) { | ||||
|     const parts = field.toString().split('=', 2); | ||||
|     if (parts.length == 1) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax