test out different workspaces

This commit is contained in:
John Sudol
2023-01-23 17:33:07 +00:00
committed by GitHub
parent 8e35cbcc36
commit 689a94d915
2 changed files with 112 additions and 20 deletions

View File

@@ -1,5 +1,9 @@
//const glob = require('@actions/glob')
import * as crypto from 'crypto'
import * as fs from 'fs'
import * as glob from '@actions/glob'
import * as path from 'path'
import * as stream from 'stream'
import * as util from 'util'
async function run(): Promise<void> {
// arg0 -> node
@@ -14,18 +18,48 @@ async function run(): Promise<void> {
}
console.log(`Match Pattern: ${matchPatterns}`)
try {
const result = await glob.hashFiles(
matchPatterns,
{followSymbolicLinks},
true
)
console.error(`__OUTPUT__${result}__OUTPUT__`)
process.exit(0)
} catch (error) {
console.log(error)
process.exit(1)
let hasMatch = false
console.log('runner cwd: ', process.cwd())
const githubWorkspace = process.env['GITHUB_WORKSPACE'] ?? process.cwd()
console.log('current workspace: ', process.env['GITHUB_WORKSPACE'])
const result = crypto.createHash('sha256')
let count = 0
const globber = await glob.create(matchPatterns, {followSymbolicLinks})
for await (const file of globber.globGenerator()) {
console.log(file)
if (!file.startsWith(`${githubWorkspace}${path.sep}`)) {
console.log(`Ignore '${file}' since it is not under GITHUB_WORKSPACE.`)
continue
}
if (fs.statSync(file).isDirectory()) {
console.log(`Skip directory '${file}'.`)
continue
}
const hash = crypto.createHash('sha256')
const pipeline = util.promisify(stream.pipeline)
await pipeline(fs.createReadStream(file), hash)
result.write(hash.digest())
count++
if (!hasMatch) {
hasMatch = true
}
}
result.end()
if (hasMatch) {
console.log(`Found ${count} files to hash.`)
console.error(`__OUTPUT__${result.digest('hex')}__OUTPUT__`)
} else {
console.error(`__OUTPUT____OUTPUT__`)
}
}
run()
.then(out => {
console.log(out)
process.exit(0)
})
.catch(err => {
console.error(err)
process.exit(1)
})