Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
p0deje committed May 30, 2024
1 parent ef78fd9 commit d520205
Show file tree
Hide file tree
Showing 8 changed files with 62 additions and 81,955 deletions.
8 changes: 5 additions & 3 deletions dist/main/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -97046,20 +97046,22 @@ async function restoreCache(cacheConfig) {

async function startRemoteCacheServer() {
core.startGroup("Remote cache server")

core.debug(`Remote cache server log file path: ${config.remoteCacheServer.logPath}`)
const log = fs.openSync(config.remoteCacheServer.logPath, 'a')
const serverProcess = fork(path.join(__dirname, 'dist', 'remote-cache-server', 'index.js'), [], {
const serverProcess = fork(__nccwpck_require__.ab + "remote-cache-server.js", [], {
detached: true,
stdio: ['ignore', log, log, 'ipc']
})
serverProcess.unref()

core.info(`Started remote cache server (${serverProcess.pid}`)
core.info(`Started remote cache server (${serverProcess.pid}`)
core.saveState('remote-cache-server-pid', serverProcess.pid.toString())
core.endGroup()
}

run()

})();

module.exports = __webpack_exports__;
Expand Down
2 changes: 1 addition & 1 deletion dist/main/index.js.map

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions dist/main/remote-cache-server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const http = require('http')
const cache = require('@actions/cache')
const fs = require('fs')

// https://bazel.build/remote/caching#http-caching
const server = http.createServer(async (req, res) => {
const { method, url } = req
const [, , cacheType, sha] = url.split('/')
const filePath = `/tmp/cache-${cacheType}-${sha}`

if (method === 'GET') {
try {
const cacheId = await cache.restoreCache([filePath], sha)
if (!cacheId) {
console.log(`Cache miss for ${sha}`)
res.writeHead(404)
return res.end('Cache miss')
}
const data = fs.readFileSync(filePath)
res.writeHead(200, { 'Content-Type': 'application/octet-stream' })
res.end(data)
} catch (error) {
console.error(`Error retrieving cache for ${sha}: ${error}`)
res.writeHead(500)
res.end('Internal Server Error')
}
} else if (method === 'PUT') {
const data = []
req.on('data', chunk => data.push(chunk))
req.on('end', async () => {
try {
fs.writeFileSync(filePath, Buffer.concat(data))
await cache.saveCache([filePath], sha)
console.log(`Cache saved for ${sha}`)
res.writeHead(201)
res.end('Cache saved')
} catch (error) {
console.error(`Error saving cache for ${sha}: ${error}`)
res.writeHead(500)
res.end('Internal Server Error')
}
})
} else {
res.writeHead(405)
res.end('Method Not Allowed')
}
})

const PORT = process.env.PORT || 8080
server.listen(PORT, () => console.log(`Server listening on port ${PORT}`))
Loading

0 comments on commit d520205

Please sign in to comment.