File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import * as core from '@actions/core' ;
2- import {
3- detectPlatform ,
4- updateVersion ,
5- configureGitUser ,
6- commitChanges ,
7- createAndPushTag ,
8- } from './utils' ;
2+ import { configureGitUser , commitChanges , createAndPushTag } from './utils' ;
93import semver from 'semver' ;
4+ import { UpdaterService } from './services' ;
5+ import {
6+ DockerUpdater ,
7+ GoUpdater ,
8+ NodeUpdater ,
9+ PHPUpdater ,
10+ PythonUpdater ,
11+ RustUpdater ,
12+ } from './updaters' ;
1013
1114async function run ( ) {
1215 try {
1316 const releaseType = ( core . getInput ( 'release_type' ) || 'patch' ) as semver . ReleaseType ;
1417
15- const platform = detectPlatform ( ) ;
18+ const updaters = [
19+ new NodeUpdater ( ) ,
20+ new PythonUpdater ( ) ,
21+ new RustUpdater ( ) ,
22+ new GoUpdater ( ) ,
23+ new DockerUpdater ( ) ,
24+ new PHPUpdater ( ) ,
25+ ] ;
26+ const updaterService = new UpdaterService ( updaters ) ;
27+
28+ const platform = updaterService . detectPlatform ( ) ;
1629 core . info ( `Detected platform: ${ platform } ` ) ;
1730
18- const version = updateVersion ( platform , releaseType ) ;
31+ const version = updaterService . updateVersion ( platform , releaseType ) ;
1932 core . setOutput ( 'new_version' , version ) ;
2033
2134 // Git Commit & Tag
Original file line number Diff line number Diff line change 1+ export * from './updaterService' ;
Original file line number Diff line number Diff line change 1+ import semver from 'semver' ;
2+ import { Updater } from '../interface' ;
3+
4+ export class UpdaterService {
5+ private updaters : Updater [ ] ;
6+
7+ constructor ( updaters : Updater [ ] ) {
8+ this . updaters = updaters ;
9+ }
10+
11+ detectPlatform ( ) : string {
12+ const updater = this . updaters . find ( ( u ) => u . canHandle ( ) ) ;
13+ return updater ? updater . platform : 'unknown' ;
14+ }
15+
16+ updateVersion ( platform : string , releaseType : semver . ReleaseType ) : string {
17+ const updater = this . updaters . find ( ( u ) => u . platform === platform ) ;
18+ if ( ! updater ) {
19+ throw new Error ( `No updater found for platform: ${ platform } ` ) ;
20+ }
21+ return updater . bumpVersion ( releaseType ) ;
22+ }
23+ }
Original file line number Diff line number Diff line change 1- export * from './updaterUtil' ;
21export * from './git' ;
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments