mirror of
https://github.com/ipfs/awesome-ipfs.git
synced 2024-11-20 11:28:35 -05:00
ci: fix github workflows
This commit is contained in:
parent
c1fec15c9e
commit
e8de796738
5 changed files with 3 additions and 141 deletions
33
.github/workflows/data.yml
vendored
33
.github/workflows/data.yml
vendored
|
@ -1,33 +0,0 @@
|
||||||
name: auto build data
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
paths:
|
|
||||||
- data/**
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: "!contains(github.event.head_commit.message, '[skip ci]') && github.repository == 'ipfs/awesome-ipfs'"
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 13
|
|
||||||
- name: build
|
|
||||||
run: |
|
|
||||||
npm --version
|
|
||||||
node --version
|
|
||||||
npm ci
|
|
||||||
npm run lint
|
|
||||||
npm run build
|
|
||||||
- name: Commit files
|
|
||||||
run: |
|
|
||||||
git config --local user.email "action@github.com"
|
|
||||||
git config --local user.name "GitHub Action"
|
|
||||||
git commit -m "Rebuild" -a
|
|
||||||
- name: Push changes
|
|
||||||
if: success()
|
|
||||||
run: git push
|
|
26
.github/workflows/pull_requests.yml
vendored
26
.github/workflows/pull_requests.yml
vendored
|
@ -7,27 +7,8 @@ on:
|
||||||
branches: [ master, main ]
|
branches: [ master, main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
# Run linting and tests
|
|
||||||
build-and-lint:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- uses: actions/setup-node@v1
|
|
||||||
with:
|
|
||||||
node-version: 13
|
|
||||||
- uses: ipfs/aegir/actions/cache-node-modules@master
|
|
||||||
with:
|
|
||||||
directories: |
|
|
||||||
README.md
|
|
||||||
build: |
|
|
||||||
npm run build:readme
|
|
||||||
cache_name: readme
|
|
||||||
# aegir/actions/cache-node-modules runs build. We don't need to run it again.
|
|
||||||
- run: npm run lint
|
|
||||||
|
|
||||||
run-danger:
|
run-danger:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build-and-lint
|
|
||||||
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
@ -40,13 +21,6 @@ jobs:
|
||||||
uses: ruby/setup-ruby@v1
|
uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: 3.1.2
|
ruby-version: 3.1.2
|
||||||
- uses: ipfs/aegir/actions/cache-node-modules@master
|
|
||||||
with:
|
|
||||||
directories: |
|
|
||||||
README.md
|
|
||||||
build: |
|
|
||||||
npm run build:readme
|
|
||||||
cache_name: readme
|
|
||||||
- name: Install and run awesome_bot
|
- name: Install and run awesome_bot
|
||||||
# It's okay for awesome_bot to fail (for maintainers only). Danger will post a comment on the PR (for maintainers only) if it fails.
|
# It's okay for awesome_bot to fail (for maintainers only). Danger will post a comment on the PR (for maintainers only) if it fails.
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -2,34 +2,13 @@ const { danger, markdown, fail, warn, message } = require('danger')
|
||||||
const awesomeBotResults = require('./ab-results-README.md-markdown-table.json')
|
const awesomeBotResults = require('./ab-results-README.md-markdown-table.json')
|
||||||
|
|
||||||
const githubMetadata = danger.git.fileMatch('.github/**')
|
const githubMetadata = danger.git.fileMatch('.github/**')
|
||||||
const yamlData = danger.git.fileMatch('data/**')
|
|
||||||
const scripts = danger.git.fileMatch('scripts/**')
|
|
||||||
const src = danger.git.fileMatch('src/**')
|
|
||||||
const readme = danger.git.fileMatch('README.md')
|
const readme = danger.git.fileMatch('README.md')
|
||||||
|
|
||||||
if (readme.edited) {
|
if (readme.edited && awesomeBotResults.error) {
|
||||||
fail('Please do not edit the README directly. It is generated from the data in the data/ directory.')
|
fail(awesomeBotResults.title)
|
||||||
|
markdown(awesomeBotResults.message)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (githubMetadata.edited) {
|
if (githubMetadata.edited) {
|
||||||
message('Changes were made within the .github folder.')
|
message('Changes were made within the .github folder.')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yamlData.edited) {
|
|
||||||
message('YAML data files were edited.')
|
|
||||||
/**
|
|
||||||
* Only display awesomeBot results if the data yaml used to generate the readme have been modified.
|
|
||||||
*/
|
|
||||||
if (awesomeBotResults.error) {
|
|
||||||
fail(awesomeBotResults.title)
|
|
||||||
markdown(awesomeBotResults.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (scripts.edited) {
|
|
||||||
warn('Changes were made to the scripts folder.')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (src.edited) {
|
|
||||||
warn('Changes were made to the src folder.')
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
/**
|
|
||||||
* This file assumes that awesome_bot has already been ran.
|
|
||||||
*/
|
|
||||||
const markdownTable = require('../ab-results-README.md-markdown-table.json')
|
|
||||||
const fs = require('fs').promises
|
|
||||||
const { join } = require('path')
|
|
||||||
|
|
||||||
const dir = join(__dirname, '../data')
|
|
||||||
|
|
||||||
if (markdownTable.error) {
|
|
||||||
const brokenLinks = require('../ab-results-README.md-filtered.json').map((resultsData) => resultsData.link);
|
|
||||||
(async () => {
|
|
||||||
const files = (await fs.readdir(dir)).map(file => join(dir, file))
|
|
||||||
|
|
||||||
for await (const filePath of files) {
|
|
||||||
let fileContents = await fs.readFile(filePath, 'utf8')
|
|
||||||
brokenLinks.forEach((brokenLink) => {
|
|
||||||
console.log('Searching for "' + brokenLink + '" in ' + filePath)
|
|
||||||
const regex = new RegExp(brokenLink, 'g')
|
|
||||||
if (fileContents.match(regex)) {
|
|
||||||
fileContents = fileContents.replace(regex, '')
|
|
||||||
console.log('Removed "' + brokenLink + '" from ' + filePath)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
await fs.writeFile(filePath, fileContents, 'utf8')
|
|
||||||
}
|
|
||||||
})()
|
|
||||||
} else {
|
|
||||||
console.log('No errors reported by awesome_bot.')
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
const sort = (a, b) => {
|
|
||||||
if (a < b) return -1
|
|
||||||
if (a > b) return 1
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
const sortInv = (a, b) => -sort(a, b)
|
|
||||||
|
|
||||||
const sortAbc = (a, b) => {
|
|
||||||
a = a.toLowerCase()
|
|
||||||
b = b.toLowerCase()
|
|
||||||
return sort(a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
const slugify = (text) => text.toString()
|
|
||||||
.toLowerCase()
|
|
||||||
.replace(/\s+/g, '-')
|
|
||||||
.replace(/[^\w-]+/g, '')
|
|
||||||
.replace(/--+/g, '-')
|
|
||||||
.replace(/^-+/, '')
|
|
||||||
.replace(/-+$/, '')
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
sort,
|
|
||||||
sortInv,
|
|
||||||
sortAbc,
|
|
||||||
slugify
|
|
||||||
}
|
|
Loading…
Reference in a new issue