cache changelog feed in CI (#25759)
* cache changelog feed in CI * unbreak unit tests * feedbacked Co-authored-by: Robert Sese <rsese@github.com>
This commit is contained in:
@@ -4,6 +4,8 @@ import path from 'path'
|
||||
|
||||
import Parser from 'rss-parser'
|
||||
|
||||
const CHANGELOG_CACHE_FILE_PATH = process.env.CHANGELOG_CACHE_FILE_PATH
|
||||
|
||||
async function getRssFeed(url) {
|
||||
const parser = new Parser({ timeout: 5000 })
|
||||
const feedUrl = `${url}/feed`
|
||||
@@ -19,9 +21,11 @@ async function getRssFeed(url) {
|
||||
return feed
|
||||
}
|
||||
|
||||
export async function getChangelogItems(prefix, feedUrl) {
|
||||
const fromCache = getChangelogItemsFromCache(prefix, feedUrl)
|
||||
if (fromCache) return fromCache
|
||||
export async function getChangelogItems(prefix, feedUrl, ignoreCache = false) {
|
||||
if (!ignoreCache) {
|
||||
const fromCache = getChangelogItemsFromCache(prefix, feedUrl)
|
||||
if (fromCache) return fromCache
|
||||
}
|
||||
|
||||
const feed = await getRssFeed(feedUrl)
|
||||
|
||||
@@ -62,6 +66,9 @@ function getChangelogCacheKey(prefix, feedUrl) {
|
||||
function getDiskCachePath(prefix, feedUrl) {
|
||||
// When in local development or in tests, use disk caching
|
||||
if (process.env.NODE_ENV === 'test' || process.env.NODE_ENV === 'development') {
|
||||
if (CHANGELOG_CACHE_FILE_PATH) {
|
||||
return CHANGELOG_CACHE_FILE_PATH
|
||||
}
|
||||
const cacheKey = getChangelogCacheKey(prefix, feedUrl)
|
||||
const date = new Date().toISOString().split('T')[0]
|
||||
const fileName = `changelogcache-${cacheKey}-${date}.json`
|
||||
|
||||
Reference in New Issue
Block a user