@@ -2,16 +2,22 @@ import * as core from '@actions/core'
22import exec from 'actions-exec-listener'
33
44import { LayerCache } from './src/LayerCache'
5+ import { ImageDetector } from './src/ImageDetector'
6+ import { assertType } from 'typescript-is'
57const main = async ( ) => {
68 const primaryKey = core . getInput ( 'key' , { required : true } )
79 const restoredKey = JSON . parse ( core . getState ( `restored-key` ) ) as string
8- const alreadyExistingImageIds = JSON . parse ( core . getState ( `already-existing-image-ids` ) ) as string [ ]
9- const currentImageIds = ( await exec . exec ( `docker image ls -q` ) ) . stdoutStr . split ( `\n` ) . filter ( id => id !== `` )
10- const imageIdsToSave = new Set ( [ ...currentImageIds ] )
11- alreadyExistingImageIds . forEach ( id => imageIdsToSave . delete ( id ) )
1210
13- core . debug ( JSON . stringify ( { imageIdsToSave } ) )
14- const layerCache = new LayerCache ( Array . from ( imageIdsToSave ) )
11+ const rawAlreadyExistingImages = core . getState ( `already-existing-images` )
12+ assertType < string > ( rawAlreadyExistingImages )
13+ const alreadyExistingImages = JSON . parse ( rawAlreadyExistingImages )
14+ assertType < string [ ] > ( alreadyExistingImages )
15+
16+ const imageDetector = new ImageDetector ( )
17+ imageDetector . registerAlreadyExistedImages ( alreadyExistingImages )
18+ imageDetector . getExistingImages ( )
19+ core . debug ( JSON . stringify ( { imageIdsToSave : imageDetector . getImagesShouldSave ( ) } ) )
20+ const layerCache = new LayerCache ( imageDetector . getImagesShouldSave ( ) )
1521
1622 core . debug ( JSON . stringify ( { restoredKey, formattedOriginalCacheKey : layerCache . getFormattedOriginalCacheKey ( ) } ) )
1723 if ( restoredKey !== `` && restoredKey === layerCache . getFormattedOriginalCacheKey ( ) ) {
0 commit comments