Skip to content

Commit

Permalink
custom release
Browse files Browse the repository at this point in the history
  • Loading branch information
pompurin404 committed Aug 5, 2024
1 parent 093b74c commit 721a585
Show file tree
Hide file tree
Showing 4 changed files with 95 additions and 10 deletions.
67 changes: 61 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ on:
push:
branches:
- master
tags:
- v*

permissions: write-all

jobs:
Expand Down Expand Up @@ -33,16 +36,30 @@ jobs:
pnpm install
pnpm prepare --${{ matrix.arch }}
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pnpm build:win --${{ matrix.arch }}

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Windows ${{ matrix.arch }}
path: dist/*.exe
if-no-files-found: error
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: |
dist/*.exe
dist/*.blockmap
token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge Yaml
if: startsWith(github.ref, 'refs/tags/v')
run: pnpm updater latest.yml
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: dist/latest.yml
token: ${{ secrets.GITHUB_TOKEN }}

linux:
strategy:
Expand Down Expand Up @@ -70,10 +87,7 @@ jobs:
pnpm install
pnpm prepare --${{ matrix.arch }}
- name: Build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: pnpm build:linux --${{ matrix.arch }}

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -82,6 +96,29 @@ jobs:
dist/*.deb
dist/*.rpm
if-no-files-found: error
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: |
dist/*.deb
dist/*.rpm
dist/*.blockmap
token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge Yaml
if: startsWith(github.ref, 'refs/tags/v') && matrix.arch == 'x64'
run: pnpm updater latest-linux.yml
- name: Merge Yaml
if: startsWith(github.ref, 'refs/tags/v') && matrix.arch == 'arm64'
run: pnpm updater latest-linux-arm64.yml
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: |
dist/latest-linux.yml
dist/latest-linux-arm64.yml
token: ${{ secrets.GITHUB_TOKEN }}

macos:
strategy:
Expand Down Expand Up @@ -119,3 +156,21 @@ jobs:
name: MacOS ${{ matrix.arch }}
path: dist/*.dmg
if-no-files-found: error
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: |
dist/*.dmg
dist/*.zip
dist/*.blockmap
token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge Yaml
if: startsWith(github.ref, 'refs/tags/v')
run: pnpm updater latest-mac.yml
- name: Publish Release
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: dist/latest-mac.yml
token: ${{ secrets.GITHUB_TOKEN }}
5 changes: 1 addition & 4 deletions electron-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,4 @@ linux:
category: Utility
artifactName: ${name}-linux-${version}-${arch}.${ext}
npmRebuild: false
publish:
provider: github
owner: pompurin404
repo: mihomo-party
publish: []
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "npm run typecheck:node && npm run typecheck:web",
"prepare": "node scripts/prepare.mjs",
"updater": "node scripts/updater.mjs",
"dev": "electron-vite dev",
"postinstall": "electron-builder install-app-deps",
"build:win": "electron-vite build && electron-builder --win",
Expand Down
32 changes: 32 additions & 0 deletions scripts/updater.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/* eslint-disable @typescript-eslint/explicit-function-return-type */
import axios from 'axios'
import yaml from 'yaml'
import fs from 'fs'

let file = 'latest.yml'
if (process.argv.slice(2).length !== 0) {
file = process.argv.slice(2)[0]
}

async function check() {
try {
const res = await axios.get(
`https://github.com/pompurin404/mihomo-party/releases/latest/download/${file}`,
{
headers: { 'Content-Type': 'application/octet-stream' }
}
)
const remoteData = yaml.parse(res.data)
const currentData = yaml.parse(fs.readFileSync(`dist/${file}`, 'utf8'))
remoteData.files.push(...currentData.files)
remoteData.releaseDate = `${new Date().toISOString()}`
fs.writeFileSync(`dist/${file}`, yaml.stringify(remoteData))
} catch (error) {
return
}
}

check().catch((error) => {
console.error(error)
process.exit(0)
})

0 comments on commit 721a585

Please sign in to comment.