Skip to content

Commit ecb88ce

Browse files
authored
chore: fix ci & tests (electron#1870)
1 parent db9a401 commit ecb88ce

File tree

3 files changed

+77
-74
lines changed

3 files changed

+77
-74
lines changed

script/readmes.js

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,8 @@ console.log(
3737
)
3838

3939
appsToUpdate.forEach((app) => {
40-
limiter.schedule(getReadme, app)
41-
})
42-
43-
limiter.on('idle', () => {
44-
fs.writeFileSync(outputFile, JSON.stringify(output, null, 2))
45-
console.log(`Done fetching README files.\nWrote ${outputFile}`)
46-
process.exit()
47-
})
48-
49-
function getReadme(app) {
50-
const { user: owner, repo } = parseGitUrl(app.repository)
51-
const opts = {
52-
owner: owner,
53-
repo: repo,
54-
headers: {
55-
Accept: 'application/vnd.github.v3.html',
56-
},
57-
}
58-
59-
return github.repos
60-
.get(opts)
40+
limiter
41+
.schedule(getReadme, app)
6142
.then((repository) => {
6243
return repository.data.default_branch
6344
})
@@ -70,8 +51,8 @@ function getReadme(app) {
7051
return
7152
})
7253
.then((defaultBranch) => {
73-
github.repos
74-
.getReadme(opts)
54+
limiter
55+
.schedule(getReadme, app, defaultBranch)
7556
.then((release) => {
7657
console.log(`${app.slug}: got latest README`)
7758
output[app.slug] = {
@@ -92,6 +73,31 @@ function getReadme(app) {
9273
}
9374
})
9475
})
76+
})
77+
78+
limiter.on('idle', () => {
79+
setTimeout(() => {
80+
fs.writeFileSync(outputFile, JSON.stringify(output, null, 2))
81+
console.log(`Done fetching README files.\nWrote ${outputFile}`)
82+
process.exit()
83+
}, 1000)
84+
})
85+
86+
function getReadme(app, defaultBranch) {
87+
const { user: owner, repo } = parseGitUrl(app.repository)
88+
const opts = {
89+
owner: owner,
90+
repo: repo,
91+
headers: {
92+
Accept: 'application/vnd.github.v3.html',
93+
},
94+
}
95+
96+
if (defaultBranch) {
97+
return github.repos.getReadme(opts)
98+
}
99+
100+
return github.repos.get(opts)
95101
}
96102

97103
function cleanReadme(readme, defaultBranch, app) {

script/releases.js

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,38 @@ console.log(
3131

3232
appsWithRepos.forEach((app) => {
3333
if (shouldUpdateAppReleaseData(app)) {
34-
limiter.schedule(getLatestRelease, app)
34+
limiter
35+
.schedule(getLatestRelease, app)
36+
.then((release) => {
37+
console.log(`${app.slug}: got latest release`)
38+
output[app.slug] = {
39+
latestRelease: release.data,
40+
latestReleaseFetchedAt: new Date(),
41+
}
42+
})
43+
.catch((err) => {
44+
console.error(`${app.slug}: no releases found`)
45+
output[app.slug] = {
46+
latestRelease: null,
47+
latestReleaseFetchedAt: new Date(),
48+
}
49+
if (err.status !== 404) console.error(err)
50+
})
3551
} else {
3652
output[app.slug] = oldReleaseData[app.slug]
3753
}
3854
})
3955

56+
limiter.on('error', (err) => {
57+
console.error(err)
58+
})
59+
4060
limiter.on('idle', () => {
41-
fs.writeFileSync(outputFile, JSON.stringify(output, null, 2))
42-
console.log(`Done fetching release data.\nWrote ${outputFile}`)
43-
process.exit()
61+
setTimeout(() => {
62+
fs.writeFileSync(outputFile, JSON.stringify(output, null, 2))
63+
console.log(`Done fetching release data.\nWrote ${outputFile}`)
64+
process.exit()
65+
}, 1000)
4466
})
4567

4668
function shouldUpdateAppReleaseData(app) {
@@ -60,21 +82,5 @@ function getLatestRelease(app) {
6082
},
6183
}
6284

63-
return github.repos
64-
.getLatestRelease(opts)
65-
.then((release) => {
66-
console.log(`${app.slug}: got latest release`)
67-
output[app.slug] = {
68-
latestRelease: release.data,
69-
latestReleaseFetchedAt: new Date(),
70-
}
71-
})
72-
.catch((err) => {
73-
console.error(`${app.slug}: no releases found`)
74-
output[app.slug] = {
75-
latestRelease: null,
76-
latestReleaseFetchedAt: new Date(),
77-
}
78-
if (err.code !== 404) console.error(err)
79-
})
85+
return github.repos.getLatestRelease(opts)
8086
}

test/machine-data.js

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import isHexColor from 'is-hexcolor'
44
import categories from '../categories.js'
55
import { expect } from 'chai'
66
import path from 'path'
7+
import yaml from 'js-yaml'
78
import { _dirname } from '../lib/dirname.js'
89
import appsWithRepos from '../lib/apps-with-github-repos.js'
910

@@ -19,12 +20,30 @@ describe('machine-generated app data (exported by the module)', () => {
1920
it('has the same number of apps as the apps directory', () => {
2021
const slugs = fs
2122
.readdirSync(path.join(_dirname(import.meta), '../apps'))
22-
.filter((filename) => {
23-
return fs
23+
.filter((filename) =>
24+
fs
2425
.statSync(path.join(_dirname(import.meta), `../apps/${filename}`))
2526
.isDirectory()
27+
)
28+
.filter((filename) => {
29+
const yamlFile = path.join(
30+
_dirname(import.meta),
31+
`../apps/${filename}/${filename}.yml`
32+
)
33+
const meta = yaml.load(fs.readFileSync(yamlFile))
34+
35+
if (meta.disabled) {
36+
return false
37+
}
38+
39+
return true
2640
})
2741

42+
const generatedSlugs = apps.map((app) => app.slug)
43+
const missingApps = slugs.filter((slug) => !generatedSlugs.includes(slug))
44+
if (missingApps)
45+
console.log('missings theses apps from generated json:', missingApps)
46+
2847
expect(apps.length).to.be.above(100)
2948
expect(apps.length).to.equal(slugs.length)
3049
})
@@ -143,34 +162,6 @@ describe('machine-generated app data (exported by the module)', () => {
143162
)
144163
})
145164
})
146-
147-
// it('rewrites relative image source tags', () => {
148-
// const beaker = apps.find((app) => app.slug === 'beaker-browser')
149-
// const local = '<img src="build/icons/256x256.png"'
150-
// const remote =
151-
// '<img src="https://github.com/beakerbrowser/beaker/raw/master/build/icons/256x256.png"'
152-
153-
// expect(beaker.readmeOriginal).to.include(local)
154-
// expect(beaker.readmeOriginal).to.not.include(remote)
155-
156-
// expect(beaker.readmeCleaned).to.not.include(local)
157-
// expect(beaker.readmeCleaned).to.include(remote)
158-
// })
159-
160-
// it('rewrites relative link hrefs', () => {
161-
// const app = apps.find(
162-
// (app) => app.slug === 'google-play-music-desktop-player'
163-
// )
164-
// const local = 'href="docs/PlaybackAPI.md"'
165-
// const remote =
166-
// 'href="https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/blob/master/docs/PlaybackAPI.md"'
167-
168-
// expect(app.readmeOriginal).to.include(local)
169-
// expect(app.readmeOriginal).to.not.include(remote)
170-
171-
// expect(app.readmeCleaned).to.not.include(local)
172-
// expect(app.readmeCleaned).to.include(remote)
173-
// })
174165
})
175166

176167
describe('machine-generated category data (exported by the module)', () => {

0 commit comments

Comments
 (0)