Integration check changes

This commit is contained in:
lowlighter
2020-10-18 14:40:32 +02:00
parent 3747d2f5d1
commit 1ab7211044
5 changed files with 45 additions and 27 deletions

12
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,12 @@
<!--
Thank you very much for contributing to this repository !
Link any related issues (if applicable) to help us keeping track of this project current state.
Don't forget to run `npm run test` to ensure that you'll pass status checks validation.
-->
**Pull request description**
<!-- A clear and concise description of what your pull request implements or fixs. -->
**Additional context and screenshots**
<!-- Add any other context or screenshots about your pull request here. -->

View File

@@ -18,7 +18,6 @@ jobs:
uses: github/codeql-action/init@v1
with:
languages: javascript
config-file: ./.github/config/codeql.yml
- name: Analyze
uses: github/codeql-action/analyze@v1
with:
config-file: ./.github/config/codeql.yml
uses: github/codeql-action/analyze@v1

View File

@@ -1,6 +1,6 @@
# 📊 GitHub metrics
![Build](https://github.com/lowlighter/metrics/workflows/Build/badge.svg)
![Build](https://github.com/lowlighter/metrics/workflows/Build/badge.svg) ![Analysis](https://github.com/lowlighter/metrics/workflows/Analysis/badge.svg)
Generates your own GitHub metrics as an SVG image to put them on your profile page or elsewhere !
See what it looks like below :

View File

@@ -8,32 +8,38 @@
import libxmljs from "libxmljs"
import url from "url"
//Dirname
//Initialization
const __dirname = path.join(path.dirname(url.fileURLToPath(import.meta.url)), "..", "action")
//Die on unhandled rejections
process.on("unhandledRejection", error => { throw error })
//Load GitHub handlers
const token = process.argv.slice(2)[0]
const graphql = octokit.graphql.defaults({headers:{authorization: `token ${token}`}})
const rest = new OctokitRest.Octokit({auth:token})
/** Test function */
export default async function test() {
//Load GitHub handlers
const token = process.argv.slice(2)[0]
const graphql = octokit.graphql.defaults({headers:{authorization: `token ${token}`}})
const rest = new OctokitRest.Octokit({auth:token})
//Load svg template, style and query
const [template, style, query] = await Promise.all(["template.svg", "style.css", "query.graphql"].map(async file => `${await fs.promises.readFile(path.join("src", file))}`))
//Load svg template, style and query
const [template, style, query] = await Promise.all(["template.svg", "style.css", "query.graphql"].map(async file => `${await fs.promises.readFile(path.join("src", file))}`))
//Compute render
const rendered = await metrics({login:"lowlighter", q:{}}, {template, style, query, graphql, rest, plugins:{}})
//Compute render
const rendered = await metrics({login:"lowlighter", q:{}}, {template, style, query, graphql, rest, plugins:{}})
//Ensure it's a well-formed SVG image
const parsed = libxmljs.parseXml(rendered)
if (parsed.errors.length)
throw new Error(`Malformed SVG : \n${parsed.errors.join("\n")}`)
//Ensure it's a well-formed SVG image
const parsed = libxmljs.parseXml(rendered)
if (parsed.errors.length)
throw new Error(`Malformed SVG : \n${parsed.errors.join("\n")}`)
//Ensure that action has been rebuild
const action = `${await fs.promises.readFile(`${__dirname}/dist/index.js`)}`
const code = await build()
if (action !== code)
throw new Error(`GitHub Action has not been rebuild. Run "npm run build" to solve this issue`)
//Ensure that action has been rebuild
const action = `${await fs.promises.readFile(`${__dirname}/dist/index.js`)}`
const code = await build()
if (action !== code)
throw new Error(`GitHub Action has not been rebuild. Run "npm run build" to solve this issue`)
}
console.log("Test success !")
//Main
if (/metrics.mjs/.test(process.argv[1])) {
//Test
await test()
console.log("Test success !")
}

View File

@@ -4,8 +4,9 @@
import url from "url"
import ncc from "@vercel/ncc"
//Dirname
//Initialization
const __dirname = path.join(path.dirname(url.fileURLToPath(import.meta.url)), "..", "action")
process.on("unhandledRejection", error => { throw error })
/** Build function */
export default async function build() {
@@ -35,5 +36,5 @@
if (/build.mjs/.test(process.argv[1])) {
//Save build
await fs.promises.writeFile(`${__dirname}/dist/index.js`, await build())
console.log("Build successful !")
console.log("Build success !")
}