1
0
mirror of synced 2025-12-23 21:07:12 -05:00

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:
Peter Bengtsson
2022-03-03 15:32:34 -05:00
committed by GitHub
parent 876b3d4d67
commit 22cd55f3e3
4 changed files with 22 additions and 4 deletions

View File

@@ -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`