From f0af77deb0918e4f622fc0e136e5ad255a6b0721 Mon Sep 17 00:00:00 2001 From: CokeMine Date: Wed, 24 Mar 2021 21:06:50 +0800 Subject: [PATCH] ci: update ci --- .eslintrc | 18 +++++++ .github/workflows/action.yml | 25 ++++++--- .releaserc | 47 +++++++++++++++++ package.json | 98 ++++++++++++++++-------------------- 4 files changed, 127 insertions(+), 61 deletions(-) create mode 100644 .eslintrc create mode 100644 .releaserc diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..a61104f --- /dev/null +++ b/.eslintrc @@ -0,0 +1,18 @@ +{ + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/vue3-essential", + "eslint:recommended", + "@vue/typescript/recommended" + ], + "parserOptions": { + "parser": "@typescript-eslint/parser" + }, + "rules": { + "semi": [ 1, "always" ], + "quotes": [ 1, "single" ] + } +} diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index df772d5..2cc4f5d 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -1,4 +1,4 @@ -name: 'Update Frontend' +name: 'Release' on: push: branches: @@ -7,9 +7,22 @@ jobs: Update_Frontend: runs-on: ubuntu-latest steps: - - name: 'Repository Dispatch' - uses: peter-evans/repository-dispatch@v1 + - name: 'Checkout Codes' + uses: actions/checkout@v2 + + - name: 'Setup Node.js' + uses: actions/setup-node@v2 with: - token: ${{ secrets.REPO_ACCESS_TOKEN }} - repository: CokeMine/ServerStatus-Hotaru - event-type: Build Frontend \ No newline at end of file + node-version: '14' + + - name: 'Build' + run: | + npm ci + npm run build --if-present + mv dist hotaru-theme + zip -r -9 hotaru-theme.zip ./hotaru-theme + + - name: 'Release' + run: npx semantic-release + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..c8b93d5 --- /dev/null +++ b/.releaserc @@ -0,0 +1,47 @@ +{ + "branches": [ + "main", + "dev" + ], + "ci": "true", + "plugins": [ + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + [ + "@semantic-release/commit-analyzer", + { + "preset": "angular", + "releaseRules": [ + { + "type": "*", + "release": "patch" + } + ], + "parserOpts": { + "noteKeywords": [ + "BREAKING CHANGE", + "BREAKING CHANGES" + ] + } + } + ], + [ + "@semantic-release/git", + { + "assets": [ + "CHANGELOG.md" + ], + "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" + } + ], + [ + "@semantic-release/github", + { + "assets": { + "path": "hotaru-theme.zip", + "name": "hotaru-theme.zip" + } + } + ] + ] +} diff --git a/package.json b/package.json index 367e9f0..b831161 100644 --- a/package.json +++ b/package.json @@ -1,55 +1,43 @@ -{ - "name": "hotaru_theme", - "version": "0.3.1", - "private": true, - "scripts": { - "serve": "vue-cli-service serve", - "build": "vue-cli-service build", - "lint": "vue-cli-service lint" - }, - "dependencies": { - "axios": "^0.21.1", - "core-js": "^3.8.3", - "semantic-ui-css": "^2.4.1", - "vue": "^3.0.0", - "vue-class-component": "^8.0.0-0" - }, - "devDependencies": { - "@types/axios": "^0.14.0", - "@typescript-eslint/eslint-plugin": "^2.33.0", - "@typescript-eslint/parser": "^2.33.0", - "@vue/cli-plugin-babel": "~4.5.11", - "@vue/cli-plugin-eslint": "~4.5.11", - "@vue/cli-plugin-typescript": "^4.5.11", - "@vue/cli-service": "~4.5.11", - "@vue/compiler-sfc": "^3.0.5", - "@vue/eslint-config-typescript": "^7.0.0", - "babel-eslint": "^10.1.0", - "eslint": "^7.19.0", - "eslint-plugin-vue": "^7.5.0", - "typescript": "~4.1.3" - }, - "eslintConfig": { - "root": true, - "env": { - "node": true - }, - "extends": [ - "plugin:vue/vue3-essential", - "eslint:recommended", - "@vue/typescript/recommended" - ], - "parserOptions": { - "parser": "@typescript-eslint/parser" - }, - "rules": { - "semi": [1, "always"], - "quotes": [1, "single"] - } - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not dead" - ] -} +{ + "name": "hotaru_theme", + "version": "0.3.1", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/CokeMine/Hotaru_theme.git" + }, + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint", + "semantic-release": "semantic-release" + }, + "dependencies": { + "axios": "^0.21.1", + "core-js": "^3.8.3", + "semantic-ui-css": "^2.4.1", + "vue": "^3.0.0", + "vue-class-component": "^8.0.0-0" + }, + "devDependencies": { + "@types/axios": "^0.14.0", + "@typescript-eslint/eslint-plugin": "^2.33.0", + "@typescript-eslint/parser": "^2.33.0", + "@vue/cli-plugin-babel": "~4.5.11", + "@vue/cli-plugin-eslint": "~4.5.11", + "@vue/cli-plugin-typescript": "^4.5.11", + "@vue/cli-service": "~4.5.11", + "@vue/compiler-sfc": "^3.0.5", + "@vue/eslint-config-typescript": "^7.0.0", + "babel-eslint": "^10.1.0", + "eslint": "^7.19.0", + "eslint-plugin-vue": "^7.5.0", + "typescript": "~4.1.3", + "semantic-release": "^17.4.2" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead" + ] +}