automated using bump-everywhere + more quality checks (#8)

- new workflows
- linting commands & linted stuff
- security checks & fixed audited vulnerabilities
- updated documentation
This commit is contained in:
undergroundwires
2020-05-23 19:13:01 +00:00
parent 997be7113f
commit 4a91e8ccd8
13 changed files with 3110 additions and 1191 deletions

23
.github/workflows/bump-and-release.yaml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: Bump & release
on:
pull_request:
types: [closed]
branches:
- master
push: # Ensure a new release is created for each new tag
tags:
- '[0-9]+.[0-9]+.[0-9]+'
jobs:
bump-version-and-release:
if: > # Push => Ensure only changes from master. PR => to not trigger when closing PR without merging
(github.event_name == 'push' && github.event.base_ref == 'refs/heads/master')
|| github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
-
uses: undergroundwires/bump-everywhere@master
with:
user: undergroundwires-bot
release-token: ${{secrets.BUMP_GITHUB_PAT}} # Does not trigger release pipeline if we use default token: https://github.community/t5/GitHub-Actions/Github-Action-trigger-on-release-not-working-if-releases-was/td-p/34559

View File

@@ -1,31 +1,11 @@
name: Build & deploy
on:
push:
branches:
- master
release:
types: [created] # will be triggered when a NON-draft release is created and published.
jobs:
increase-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: Setup GIT
run: |
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
git config user.name "$GITHUB_ACTOR"
- name: Install and Publish
run: |
npm version patch -m "🚀 upgraded to %s"
git push --set-upstream origin master && git push --tags
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
build-and-deploy:
needs: increase-version
runs-on: ubuntu-latest
steps:
-
@@ -98,11 +78,12 @@ jobs:
uses: actions/checkout@v2
with:
path: site
ref: master # otherwise we don't get version bump commit
-
name: "App: Setup node"
uses: actions/setup-node@v1
with:
node-version: '12.x'
node-version: '14.x'
-
name: "App: Install dependencies"
run: npm install

37
.github/workflows/quality-checks.yaml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Quality checks
on:
pull_request:
branches:
- master
jobs:
lint:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Setup node
uses: actions/setup-node@v1
with:
node-version: 14.x
-
name: Install dependencies
run: npm ci
-
name: Lint vue
run: npm run lint:vue
-
name: Lint yaml
run: npm run lint:yaml
-
name: 'Validate md: Relative URLs'
run: npm run lint:md:relative-urls
-
name: 'Validate md: Enforce standards'
run: npm run lint:md
-
name: 'Validate md: Ensure consistency'
run: npm run lint:md:consistency

24
.github/workflows/security-checks.yaml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Security checks
on:
pull_request:
branches:
- master
schedule:
- cron: '0 0 * * 0'
jobs:
npm-audit:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Setup node
uses: actions/setup-node@v1
with:
node-version: 14.x
-
name: NPM audit
run: npm audit

View File

@@ -1,6 +1,9 @@
name: Run tests
name: Test
on: [push, pull_request]
on:
pull_request:
branches:
- master
jobs:
run-tests:
@@ -8,15 +11,15 @@ jobs:
steps:
-
name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v2
-
name: Setup node
uses: actions/setup-node@v1
with:
node-version: '11.x'
node-version: '14.x'
-
name: Install dependencies
run: npm install
run: npm ci
-
name: Run tests
run: npm run test:unit

4
.markdownlint.json Normal file
View File

@@ -0,0 +1,4 @@
{
"default": true,
"MD013": false
}

View File

@@ -1,55 +0,0 @@
# Changelog
- All notable changes to this project will be documented in this file.
## Unreleased
-
## [0.4.2] - 2020-02-29
- Fixed search text font being defaulted to Arial.
- Shortened `HKEY` paths in scripts
## [0.4.1] - 2020-01-11
- Fixed & improved search
- Hiding grouping while searching
- Showing search queries when searching
## [0.4.0] - 2020-01-11
- Added search
- Some styling improvements
- Better organization of scripts + more scripts
## [0.3.0] - 2020-01-09
- Added support for grouping
- Added some meta tags
- Added "Disable NVIDIA telemetry" script
- Added legacy browser compatibility for fonts & changed main font
## [0.2.0] - 2020-01-06
- Fixed typo in generated code.
- Better URL validation for documentation links in `application.yaml`.
- Slightly faster parsing of `application.yaml`
- Styled no JS error that's shown when JavaScript is disabled.
- The default selection is now *None* & instruction text is shown in code box when nothing is selected.
- Added hyphen lines when rendering of long function names
- Changed subtitle: added version as footer instead.
## [0.1.0] - 2019-12-31
- Initial release
## All releases
- [Unreleased] : https://github.com/undergroundwires/privacy.sexy/compare/v0.4.2...HEAD
- [v0.4.2] : https://github.com/undergroundwires/privacy.sexy/compare/v0.4.1...v0.4.2
- [v0.4.1] : https://github.com/undergroundwires/privacy.sexy/compare/v0.4.0...v0.4.1
- [v0.4.0] : https://github.com/undergroundwires/privacy.sexy/compare/v0.3.0...v0.4.0
- [v0.3.0] : https://github.com/undergroundwires/privacy.sexy/compare/v0.2.0...v0.3.0
- [v0.2.0] : https://github.com/undergroundwires/privacy.sexy/compare/v0.1.0...v0.2.0
- [v0.1.0] : https://github.com/undergroundwires/privacy.sexy/releases/tag/v0.1.0

View File

@@ -1,13 +1,16 @@
# privacy.sexy
![Build & deploy status](https://github.com/undergroundwires/privacy.sexy/workflows/Build%20&%20deploy/badge.svg)
![Vulnerabilities](https://snyk.io/test/github/undergroundwires/privacy.sexy/badge.svg)
> Web tool to enforce privacy & security best-practices on Windows, because privacy is sexy 🍑🍆
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/undergroundwires/privacy.sexy/issues)
[![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/undergroundwires/privacy.sexy.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/undergroundwires/privacy.sexy/context:javascript)
[![Maintainability](https://api.codeclimate.com/v1/badges/3a70b7ef602e2264342c/maintainability)](https://codeclimate.com/github/undergroundwires/privacy.sexy/maintainability)
Web tool to generate scripts for enforcing privacy & security best-practices such as stopping data collection of Windows and different softwares on it.
> because privacy is sexy 🍑🍆
[![Tests status](https://github.com/undergroundwires/privacy.sexy/workflows/Test/badge.svg)](https://github.com/undergroundwires/privacy.sexy/actions)
[![Quality checks status](https://github.com/undergroundwires/privacy.sexy/workflows/Quality%20checks/badge.svg)](https://github.com/undergroundwires/privacy.sexy/actions)
[![Security checks status](https://github.com/undergroundwires/privacy.sexy/workflows/Security%20checks/badge.svg)](https://github.com/undergroundwires/privacy.sexy/actions)
[![Bump & release status](https://github.com/undergroundwires/privacy.sexy/workflows/Bump%20&%20release/badge.svg)](https://github.com/undergroundwires/privacy.sexy/actions)
[![Deploy status](https://github.com/undergroundwires/privacy.sexy/workflows/Build%20&%20deploy/badge.svg)](https://github.com/undergroundwires/privacy.sexy/actions)
[![Auto-versioned by bump-everywhere](https://github.com/undergroundwires/bump-everywhere/blob/master/badge.svg?raw=true)](https://github.com/undergroundwires/bump-everywhere)
[https://privacy.sexy](https://privacy.sexy)
@@ -50,7 +53,7 @@ Fork it & add more scripts in [application.yaml](src/application/application.yam
- **Application Layer**
- Keeps the application state
- The [state](src/application/State/ApplicationState.ts) is a mutable singleton & event producer.
- The application is defined & controlled in a [single YAML file](`\application\application.yaml`) (see [Data-driven programming](https://en.wikipedia.org/wiki/Data-driven_programming))
- The application is defined & controlled in a [single YAML file](src/application/application.yaml) (see [Data-driven programming](https://en.wikipedia.org/wiki/Data-driven_programming))
![DDD + vue.js](docs/app-ddd.png)
@@ -64,17 +67,8 @@ Fork it & add more scripts in [application.yaml](src/application/application.yam
#### GitOps: CI/CD to AWS
- CI/CD is fully automated for this repo using different GIT events & GitHub actions.
- Versioning, tagging, creation of `CHANGELOG.md` and releasing is automated using [bump-everywhere](https://github.com/undergroundwires/bump-everywhere) action
- Everything that's merged in the master goes directly to production.
- See more at [build-and-deploy.yaml](.github/workflows/build-and-deploy.yaml), and [run-tests.yaml](.github/workflows/run-tests.yaml)
[![CI/CD to AWS with GitHub Actions](docs/gitops.png)](.github/workflows/build-and-deploy.yaml)
## Thank you for the awesome projects 🍺
- [Vue.js](https://vuejs.org/) the only big JavaScript framework that's not backed by companies that make money off your data.
- [liquor-tree](https://GitHub.com/amsik/liquor-tree) for the awesome & super extensible tree component.
- [Ace](https://ace.c9.io/) for code box.
- [FileSaver.js](https://GitHub.com/eligrey/FileSaver.js) for save file dialog.
- [chai](https://GitHub.com/chaijs/chai) & [mocha](https://GitHub.com/mochajs/mocha) for making testing fun.
- [js-yaml-loader](https://GitHub.com/wwilsman/js-yaml-loader) for ahead of time loading `application.yml`
- [v-tooltip](https://GitHub.com/Akryum/v-tooltip) takes seconds to have a tooltip, exactly what I needed.
[![CI/CD to AWS with GitHub Actions](docs/gitops.png)](.github/workflows/)

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 233 KiB

4060
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -5,8 +5,12 @@
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
"lint:vue": "vue-cli-service lint --no-fix",
"lint:yaml": "yamllint **/*.yaml --ignore=node_modules/**/*.yaml",
"test:unit": "vue-cli-service test:unit",
"lint:md": "markdownlint **/*.md --ignore node_modules",
"lint:md:relative-urls": "remark . --frail --use remark-validate-links",
"lint:md:consistency": "remark . --frail --use remark-preset-lint-consistent"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.26",
@@ -24,19 +28,25 @@
"vue-property-decorator": "^8.3.0"
},
"devDependencies": {
"@types/chai": "^4.2.7",
"@types/mocha": "^5.2.7",
"@types/ace": "0.0.42",
"@types/chai": "^4.2.7",
"@types/file-saver": "^2.0.1",
"@vue/cli-plugin-typescript": "^4.1.1",
"@types/mocha": "^5.2.7",
"@vue/cli-plugin-typescript": "^4.4.0",
"@vue/cli-plugin-unit-mocha": "^4.1.1",
"@vue/cli-service": "^4.1.1",
"@vue/test-utils": "1.0.0-beta.30",
"chai": "^4.2.0",
"js-yaml-loader": "^1.2.2",
"markdownlint-cli": "^0.23.1",
"remark-cli": "^8.0.0",
"remark-lint-no-dead-urls": "^1.0.2",
"remark-preset-lint-consistent": "^3.0.0",
"remark-validate-links": "^10.0.0",
"sass": "^1.24.0",
"sass-loader": "^8.0.0",
"js-yaml-loader": "^1.2.2",
"typescript": "^3.7.4",
"vue-template-compiler": "^2.6.11"
"vue-template-compiler": "^2.6.11",
"yaml-lint": "^1.2.4"
}
}

2
src/global.d.ts vendored
View File

@@ -37,7 +37,7 @@ declare module 'liquor-tree' {
children: ReadonlyArray<ILiquorTreeNewNode> | undefined;
data: ICustomLiquorTreeData;
}
// https://amsik.github.io/liquor-tree/#Component-Options
export interface ILiquorTreeOptions {
multiple: boolean;