fix(ci): update some parameters [skip ci]

This commit is contained in:
lowlighter
2022-01-15 08:53:52 -05:00
parent b46cc1fea0
commit f33fe2dc00
22 changed files with 93 additions and 72 deletions

View File

@@ -46,10 +46,11 @@ for (const step of ["config", "documentation"]) {
//Plugins
for (const id of Object.keys(plugins)) {
const {examples, options, readme, tests} = await plugin(id)
const {examples, options, readme, tests, header} = await plugin(id)
//Readme
await fs.writeFile(readme.path, readme.content
.replace(/(<!--header-->)[\s\S]*(<!--\/header-->)/g, `$1\n${header}\n$2`)
.replace(/(<!--examples-->)[\s\S]*(<!--\/examples-->)/g, `$1\n${examples.map(({test, prod, ...step}) => ["```yaml", yaml.dump(step), "```"].join("\n")).join("\n")}\n$2`)
.replace(/(<!--options-->)[\s\S]*(<!--\/options-->)/g, `$1\n${options}\n$2`)
)
@@ -121,7 +122,8 @@ async function plugin(id) {
path:tests
},
examples:fss.existsSync(examples) ? yaml.load(await fs.readFile(examples), "utf8") ?? [] : [],
options:plugins[id].readme.table
options:plugins[id].readme.table,
header:plugins[id].readme.header
}
}

View File

@@ -23,6 +23,7 @@ jobs:
<%- steps.split("\n").map(line => ` ${line}`).join("\n") %>
- name: Publish examples
if: ${{ success() || failure() }}
run: |
set +e
sudo mv /metrics_renders/* ./
@@ -128,6 +129,7 @@ jobs:
delay: 120
- name: Publish examples
if: ${{ success() || failure() }}
run: |
set +e
sudo mv /metrics_renders/* ./

View File

@@ -33,7 +33,7 @@ jobs:
uses: lowlighter/metrics@master
with:
user: github
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
base: header, repositories
plugins_errors_fatal: 'yes'
output_action: none
@@ -340,7 +340,7 @@ jobs:
- name: 🗂️ Active projects - Project from a repository
uses: lowlighter/metrics@master
with:
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
plugin_projects: 'yes'
plugin_projects_repositories: lowlighter/metrics/projects/1
plugin_projects_descriptions: 'yes'
@@ -447,7 +447,7 @@ jobs:
- name: 🧮 Repositories traffic - Repositories traffic
uses: lowlighter/metrics@master
with:
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -471,10 +471,10 @@ jobs:
output_action: none
delay: 120
if: ${{ success() || failure() }}
- name: 🙋 Introduction - User introduction
- name: 🙋 Introduction - Organization introduction
uses: lowlighter/metrics@master
with:
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -539,6 +539,7 @@ jobs:
token: NOT_NEEDED
plugin_pagespeed: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -550,6 +551,7 @@ jobs:
plugin_pagespeed: 'yes'
plugin_pagespeed_detailed: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -561,6 +563,7 @@ jobs:
plugin_pagespeed: 'yes'
plugin_pagespeed_screenshot: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -638,30 +641,6 @@ jobs:
output_action: none
delay: 120
if: ${{ success() || failure() }}
- name: 🎼 Music plugin - Youtube Music - Recently listed
uses: lowlighter/metrics@master
with:
token: NOT_NEEDED
plugin_music_token: ${{ secrets.YOUTUBE_MUSIC_TOKENS }}
plugin_music: 'yes'
plugin_music_mode: recent
plugin_music_provider: youtube
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
if: ${{ success() || failure() }}
- name: 🎼 Music plugin - Last.fm - Recently listed
uses: lowlighter/metrics@master
with:
token: NOT_NEEDED
plugin_music_token: ${{ secrets.LASTFM_TOKEN }}
plugin_music: 'yes'
plugin_music_provider: lastfm
plugin_music_user: RJ
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
if: ${{ success() || failure() }}
- name: 🗨️ Stackoverflow plugin - Top answers from stackoverflow
uses: lowlighter/metrics@master
with:
@@ -716,7 +695,10 @@ jobs:
- name: 🐤 Latest tweets - Latest tweets
uses: lowlighter/metrics@master
with:
user: botlighter
token: NOT_NEEDED
plugin_tweets: 'yes'
plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }}
plugin_tweets_user: github
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -724,7 +706,11 @@ jobs:
- name: 🐤 Latest tweets - Latest tweets including attachments
uses: lowlighter/metrics@master
with:
user: botlighter
token: NOT_NEEDED
plugin_tweets: 'yes'
plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }}
plugin_tweets_attachments: 'yes'
plugin_tweets_user: github
plugins_errors_fatal: 'yes'
output_action: none
delay: 120
@@ -776,7 +762,7 @@ jobs:
with:
token: NOT_NEEDED
plugin_stock: 'yes'
plugin_stock_token: ${{ secrets.RAPIDAPI_TOKEN }}
plugin_stock_token: ${{ secrets.STOCK_TOKEN }}
plugin_stock_symbol: TSLA
plugins_errors_fatal: 'yes'
output_action: none
@@ -808,7 +794,7 @@ jobs:
uses: lowlighter/metrics@master
with:
template: repository
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
user: lowlighter
repo: metrics
plugin_lines: 'yes'
@@ -914,6 +900,7 @@ jobs:
- name: Publish examples
if: ${{ success() || failure() }}
run: |
set +e
sudo mv /metrics_renders/* ./
@@ -1019,6 +1006,7 @@ jobs:
delay: 120
- name: Publish examples
if: ${{ success() || failure() }}
run: |
set +e
sudo mv /metrics_renders/* ./

View File

@@ -268,6 +268,30 @@ metadata.plugin = async function({__plugins, name, logger}) {
const raw = `${await fs.promises.readFile(path.join(__plugins, name, "README.md"), "utf-8")}`
const demo = raw.match(/(?<demo><table>[\s\S]*?<[/]table>)/)?.groups?.demo?.replace(/<[/]?(?:table|tr)>/g, "")?.trim() ?? "<td></td>"
//Header table
const header = [
"<table>",
` <tr><th colspan="2"><h3>${meta.name}</h3></th></tr>`,
` <tr><td colspan="2" align="center">${(meta.description ?? "").replaceAll("\n", "<br>")}</td></tr>`,
" <tr>",
' <th rowspan="3">Supported features<br><sub><a href="metadata.yml">→ Full specification</a></sub></th>',
//` <td>${Object.entries(compatibility).filter(([_, value]) => value).map(([id]) => `<a href="/source/plugins/${id}" title="${plugins[id].name}">${plugins[id].icon}</a>`).join(" ")}${meta.formats?.includes("markdown") ? " <code>✓ embed()</code>" : ""}</td>`,
" </tr>",
" <tr>",
` <td>${[
meta.supports?.includes("user") ? "👤 Users" : "",
meta.supports?.includes("organization") ? "👥 Organizations" : "",
meta.supports?.includes("repository") ? "📓 Repositories" : ""
].filter(v => v).join(", ")}</td>`,
" </tr>",
" <tr>",
` <td>${[...(meta.scopes ?? []).map(scope => `🔑 ${scope}`), ...Object.entries(inputs).filter(([_, {type}]) => type === "token").map(([token]) => `<code>🗝 ${token}</code>`)].join(", ")}</td>`,
" </tr>",
" <tr>",
" </tr>",
"</table>"
].join("\n")
//Options table
let flags = new Set()
const table = [
@@ -348,7 +372,7 @@ metadata.plugin = async function({__plugins, name, logger}) {
].flat(Infinity).filter(s => s).join("\n")
//Readme descriptor
meta.readme = {demo, table}
meta.readme = {demo, table, header}
}
//Icon
@@ -368,7 +392,6 @@ metadata.template = async function({__templates, name, plugins, logger}) {
try {
//Load meta descriptor
const raw = fs.existsSync(path.join(__templates, name, "metadata.yml")) ? `${await fs.promises.readFile(path.join(__templates, name, "metadata.yml"), "utf-8")}` : ""
const readme = fs.existsSync(path.join(__templates, name, "README.md")) ? `${await fs.promises.readFile(path.join(__templates, name, "README.md"), "utf-8")}` : ""
const meta = yaml.load(raw) ?? {}
//Compatibility
@@ -383,7 +406,7 @@ metadata.template = async function({__templates, name, plugins, logger}) {
}
//Demo for main and individual readmes
function demo({colspan = null} = {}) {
function demo({colspan = null} = {}) { //eslint-disable-line no-inner-declarations
return [
` <td ${colspan ? `colspan="${colspan}"` : ""} align="center">`,
`${Object.entries(meta.examples ?? {}).map(([text, link]) => {
@@ -394,8 +417,8 @@ metadata.template = async function({__templates, name, plugins, logger}) {
}
return ` ${img}`
}).join("\n")}`,
` <img width="900" height="1" alt="">`,
` </td>`
' <img width="900" height="1" alt="">',
" </td>"
].join("\n")
}
@@ -404,18 +427,18 @@ metadata.template = async function({__templates, name, plugins, logger}) {
"<table>",
` <tr><th colspan="2"><h3>${meta.name ?? "(unnamed template)"}</h3></th></tr>`,
` <tr><td colspan="2" align="center">${(meta.description ?? "").replaceAll("\n", "<br>")}</td></tr>`,
` <tr>`,
` <th rowspan="3">Supported features<br><sub><a href="metadata.yml">→ Full specification</a></sub></th>`,
" <tr>",
' <th rowspan="3">Supported features<br><sub><a href="metadata.yml">→ Full specification</a></sub></th>',
` <td>${Object.entries(compatibility).filter(([_, value]) => value).map(([id]) => `<a href="/source/plugins/${id}" title="${plugins[id].name}">${plugins[id].icon}</a>`).join(" ")}${meta.formats?.includes("markdown") ? " <code>✓ embed()</code>" : ""}</td>`,
` </tr>`,
` <tr>`,
" </tr>",
" <tr>",
` <td>${[
meta.supports?.includes("user") ? "👤 Users" : "",
meta.supports?.includes("organization") ? "👥 Organizations" : "",
meta.supports?.includes("repository") ? "📓 Repositories" : ""
].filter(v => v).join(", ")}</td>`,
` </tr>`,
` <tr>`,
" </tr>",
" <tr>",
` <td>${[
meta.formats?.includes("svg") ? "*️⃣ SVG" : "",
meta.formats?.includes("png") ? "*️⃣ PNG" : "",
@@ -424,10 +447,10 @@ metadata.template = async function({__templates, name, plugins, logger}) {
meta.formats?.includes("markdown") ? "🔠 Markdown" : "",
meta.formats?.includes("markdown-pdf") ? "🔠 Markdown (PDF)" : "",
].filter(v => v).join(", ")}</td>`,
` </tr>`,
` <tr>`,
" </tr>",
" <tr>",
demo({colspan:2}),
` </tr>`,
" </tr>",
"</table>"
].join("\n")

View File

@@ -3,7 +3,7 @@
with:
filename: metrics.organization.svg
user: github
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
base: header, repositories
- name: Large display

View File

@@ -32,7 +32,7 @@ It is mostly intended for metrics used outside of GitHub, since these informatio
<!--examples-->
```yaml
name: User introduction
name: Organization introduction
uses: lowlighter/metrics@latest
with:
filename: metrics.plugin.introduction.svg

View File

@@ -1,4 +1,4 @@
- name: User introduction
- name: Organization introduction
uses: lowlighter/metrics@latest
with:
filename: metrics.plugin.introduction.svg
@@ -8,7 +8,7 @@
plugin_introduction: yes
prod:
with:
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
- name: Repository introduction
uses: lowlighter/metrics@latest

View File

@@ -63,6 +63,8 @@
plugin_music: yes
plugin_music_mode: recent
plugin_music_provider: youtube
prod:
skip: true
- name: Last.fm - Recently listed
uses: lowlighter/metrics@latest
@@ -71,4 +73,6 @@
plugin_music_token: ${{ secrets.LASTFM_TOKEN }}
plugin_music: yes
plugin_music_provider: lastfm
plugin_music_user: RJ
plugin_music_user: RJ
prod:
skip: true

View File

@@ -55,6 +55,7 @@ with:
token: NOT_NEEDED
plugin_pagespeed: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
```
```yaml
@@ -66,6 +67,7 @@ with:
plugin_pagespeed: 'yes'
plugin_pagespeed_detailed: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
```
```yaml
@@ -77,6 +79,7 @@ with:
plugin_pagespeed: 'yes'
plugin_pagespeed_screenshot: 'yes'
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
```
<!--/examples-->

View File

@@ -5,6 +5,7 @@
token: NOT_NEEDED
plugin_pagespeed: yes
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
- name: Detailed report
uses: lowlighter/metrics@latest
@@ -14,6 +15,7 @@
plugin_pagespeed: yes
plugin_pagespeed_detailed: yes
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io
- name: Screenshot
uses: lowlighter/metrics@latest
@@ -23,4 +25,5 @@
plugin_pagespeed: yes
plugin_pagespeed_screenshot: yes
plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }}
plugin_pagespeed_url: https://lecoq.io

View File

@@ -63,7 +63,7 @@ name: Project from a repository
uses: lowlighter/metrics@latest
with:
filename: metrics.plugin.projects.svg
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
base: ''
plugin_projects: 'yes'
plugin_projects_repositories: lowlighter/metrics/projects/1

View File

@@ -2,7 +2,7 @@
uses: lowlighter/metrics@latest
with:
filename: metrics.plugin.projects.svg
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
base: ""
plugin_projects: yes
plugin_projects_repositories: lowlighter/metrics/projects/1

View File

@@ -47,7 +47,7 @@ with:
token: NOT_NEEDED
base: ''
plugin_stock: 'yes'
plugin_stock_token: ${{ secrets.RAPIDAPI_TOKEN }}
plugin_stock_token: ${{ secrets.STOCK_TOKEN }}
plugin_stock_symbol: TSLA
```

View File

@@ -5,5 +5,5 @@
token: NOT_NEEDED
base: ""
plugin_stock: yes
plugin_stock_token: ${{ secrets.RAPIDAPI_TOKEN }}
plugin_stock_token: ${{ secrets.STOCK_TOKEN }}
plugin_stock_symbol: TSLA

View File

@@ -7,4 +7,4 @@
plugin_traffic: yes
prod:
with:
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}

View File

@@ -6,9 +6,6 @@
plugin_tweets: yes
plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }}
plugin_tweets_user: github
prod:
with:
user: botlighter
- name: Latest tweets including attachments
uses: lowlighter/metrics@latest
@@ -19,7 +16,3 @@
plugin_tweets_token: ${{ secrets.TWITTER_TOKEN }}
plugin_tweets_attachments: yes
plugin_tweets_user: github
prod:
with:
user: botlighter

View File

@@ -45,7 +45,7 @@ uses: lowlighter/metrics@latest
with:
template: repository
filename: metrics.repository.svg
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
user: lowlighter
repo: metrics
plugin_lines: 'yes'

View File

@@ -3,7 +3,7 @@
with:
template: repository
filename: metrics.repository.svg
token: ${{ secrets.METRICS_BOT_TOKEN }}
token: ${{ secrets.METRICS_TOKEN_WITH_SCOPES }}
user: lowlighter
repo: metrics
plugin_lines: yes

View File

@@ -1,4 +1,4 @@
- name: 🙋 Introduction - User introduction
- name: 🙋 Introduction - Organization introduction
uses: lowlighter/metrics@latest
with:
token: MOCKED_TOKEN

View File

@@ -4,6 +4,7 @@
token: NOT_NEEDED
plugin_pagespeed: 'yes'
plugin_pagespeed_token: MOCKED_TOKEN
plugin_pagespeed_url: https://lecoq.io
- name: ⏱️ Website performances - Detailed report
uses: lowlighter/metrics@latest
with:
@@ -11,6 +12,7 @@
plugin_pagespeed: 'yes'
plugin_pagespeed_detailed: 'yes'
plugin_pagespeed_token: MOCKED_TOKEN
plugin_pagespeed_url: https://lecoq.io
- name: ⏱️ Website performances - Screenshot
uses: lowlighter/metrics@latest
with:
@@ -18,3 +20,4 @@
plugin_pagespeed: 'yes'
plugin_pagespeed_screenshot: 'yes'
plugin_pagespeed_token: MOCKED_TOKEN
plugin_pagespeed_url: https://lecoq.io

View File

@@ -3,5 +3,5 @@
with:
token: NOT_NEEDED
plugin_stock: 'yes'
plugin_stock_token: MOCKED_TOKEN
plugin_stock_token: undefined
plugin_stock_symbol: TSLA

View File

@@ -1,6 +1,6 @@
{
"METRICS_TOKEN":"MOCKED_TOKEN",
"METRICS_BOT_TOKEN":"MOCKED_TOKEN",
"METRICS_TOKEN_WITH_SCOPES":"MOCKED_TOKEN",
"PAGESPEED_TOKEN":"MOCKED_TOKEN",
"SPOTIFY_TOKENS":"MOCKED_CLIENT_ID, MOCKED_CLIENT_SECRET, MOCKED_REFRESH_TOKEN",
"YOUTUBE_MUSIC_TOKENS":"SAPISID=MOCKED_COOKIE; OTHER_PARAM=OTHER_VALUE;",
@@ -9,5 +9,5 @@
"WAKATIME_TOKEN":"MOCKED_TOKEN",
"WAKATIME_TOKEN_NO_PROJECTS":"MOCKED_TOKEN_NO_PROJECTS",
"TWITTER_TOKEN":"MOCKED_TOKEN",
"RAPIDAPI_TOKEN":"MOCKED_TOKEN"
"STOCK_TOKEN":"MOCKED_TOKEN"
}