fix artifact

This commit is contained in:
pompurin404 2024-10-21 13:48:24 +08:00
parent 30bf7567fb
commit 7df1894af3
No known key found for this signature in database
2 changed files with 269 additions and 145 deletions

View File

@ -272,10 +272,12 @@ jobs:
body_path: changelog.md body_path: changelog.md
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
artifact: artifact-windows:
if: startsWith(github.ref, 'refs/heads/') if: startsWith(github.ref, 'refs/heads/')
needs: [windows, macos, linux, windows7, macos10] needs: windows
runs-on: ubuntu-latest runs-on: ubuntu-latest
concurrency:
group: artifact
services: services:
telegram-bot-api: telegram-bot-api:
image: aiogram/telegram-bot-api:latest image: aiogram/telegram-bot-api:latest
@ -294,10 +296,140 @@ jobs:
- name: Download Artifacts - name: Download Artifacts
uses: actions/download-artifact@v4 uses: actions/download-artifact@v4
with: with:
pattern: 'Windows*'
merge-multiple: true merge-multiple: true
- name: Upload Artifacts - name: Upload Artifacts
env: env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
ARTIFACT_TARGET: windows
run: pnpm artifact
artifact-windows7:
if: startsWith(github.ref, 'refs/heads/')
needs: windows7
runs-on: ubuntu-latest
concurrency:
group: artifact
services:
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
env:
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
ports:
- 8081:8081
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
pattern: 'Win7*'
merge-multiple: true
- name: Upload Artifacts
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
ARTIFACT_TARGET: windows7
run: pnpm artifact
artifact-macos:
if: startsWith(github.ref, 'refs/heads/')
needs: macos
runs-on: ubuntu-latest
concurrency:
group: artifact
services:
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
env:
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
ports:
- 8081:8081
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
pattern: 'MacOS*'
merge-multiple: true
- name: Upload Artifacts
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
ARTIFACT_TARGET: macos
run: pnpm artifact
artifact-macos10:
if: startsWith(github.ref, 'refs/heads/')
needs: macos10
runs-on: ubuntu-latest
concurrency:
group: artifact
services:
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
env:
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
ports:
- 8081:8081
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
pattern: 'Catalina*'
merge-multiple: true
- name: Upload Artifacts
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
ARTIFACT_TARGET: macos10
run: pnpm artifact
artifact-linux:
if: startsWith(github.ref, 'refs/heads/')
needs: linux
runs-on: ubuntu-latest
concurrency:
group: artifact
services:
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
env:
TELEGRAM_API_ID: ${{ secrets.TELEGRAM_BOT_API_ID }}
TELEGRAM_API_HASH: ${{ secrets.TELEGRAM_BOT_API_HASH }}
ports:
- 8081:8081
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
run: npm install -g pnpm
- name: Install Dependencies
run: pnpm install
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
pattern: 'Linux*'
merge-multiple: true
- name: Upload Artifacts
env:
TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
ARTIFACT_TARGET: linux
run: pnpm artifact run: pnpm artifact
updater: updater:

View File

@ -7,152 +7,144 @@ import { execSync } from 'child_process'
const CHAT_ID = '@MihomoPartyCi' const CHAT_ID = '@MihomoPartyCi'
const GITHUB_WORKSPACE = process.env.GITHUB_WORKSPACE const GITHUB_WORKSPACE = process.env.GITHUB_WORKSPACE
const ARTIFACT_TARGET = process.env.ARTIFACT_TARGET
const pkg = fs.readFileSync('package.json', 'utf-8') const pkg = fs.readFileSync('package.json', 'utf-8')
const { version } = JSON.parse(pkg) const { version } = JSON.parse(pkg)
const hash = execSync('git rev-parse --short HEAD').toString().trim() const hash = execSync('git rev-parse --short HEAD').toString().trim()
const message = execSync('git log -1 --pretty=%B').toString().trim() const message = execSync('git log -1 --pretty=%B').toString().trim()
const linuxFiles = [ switch (ARTIFACT_TARGET) {
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-aarch64.rpm`), case 'windows': {
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-arm64.deb`), const windowsFiles = [
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-x86_64.rpm`), path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-x64-setup.exe`),
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-amd64.deb`) path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-x64-portable.7z`),
] path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-ia32-setup.exe`),
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-ia32-portable.7z`),
const macosFiles = [ path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-arm64-setup.exe`),
path.join(GITHUB_WORKSPACE, `mihomo-party-macos-${version}-arm64.pkg`), path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-arm64-portable.7z`)
path.join(GITHUB_WORKSPACE, `mihomo-party-macos-${version}-x64.pkg`) ]
] const windowsMedia = windowsFiles.map((file, index) => ({
type: 'document',
const macos10Files = [ media: `attach://file${index}`
path.join(GITHUB_WORKSPACE, `mihomo-party-catalina-${version}-arm64.pkg`), }))
path.join(GITHUB_WORKSPACE, `mihomo-party-catalina-${version}-x64.pkg`) windowsMedia[windowsMedia.length - 1].caption = `#${hash} #Windows10 #Windows11\n${message}`
] const windowsForm = new FormData()
windowsForm.append('chat_id', CHAT_ID)
const windowsFiles = [ windowsForm.append('media', JSON.stringify(windowsMedia))
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-x64-setup.exe`), windowsFiles.forEach((file, index) => {
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-x64-portable.7z`), windowsForm.append(`file${index}`, fs.createReadStream(file))
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-ia32-setup.exe`), })
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-ia32-portable.7z`), await axios.post(
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-arm64-setup.exe`), `http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
path.join(GITHUB_WORKSPACE, `mihomo-party-windows-${version}-arm64-portable.7z`) windowsForm,
] {
headers: windowsForm.getHeaders()
const windows7Files = [ }
path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-x64-setup.exe`), )
path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-x64-portable.7z`), break
path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-ia32-setup.exe`), }
path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-ia32-portable.7z`) case 'windows7': {
] const windows7Files = [
path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-x64-setup.exe`),
const windowsMedia = windowsFiles.map((file, index) => ({ path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-x64-portable.7z`),
type: 'document', path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-ia32-setup.exe`),
media: `attach://file${index}` path.join(GITHUB_WORKSPACE, `mihomo-party-win7-${version}-ia32-portable.7z`)
})) ]
windowsMedia[windowsMedia.length - 1].caption = `#${hash} #Windows10 #Windows11\n${message}` const windows7Media = windows7Files.map((file, index) => ({
const windowsForm = new FormData() type: 'document',
windowsForm.append('chat_id', CHAT_ID) media: `attach://file${index}`
windowsForm.append('media', JSON.stringify(windowsMedia)) }))
windowsFiles.forEach((file, index) => { windows7Media[windows7Media.length - 1].caption = `#${hash} #Windows7 #Windows8\n${message}`
windowsForm.append(`file${index}`, fs.createReadStream(file)) const windows7Form = new FormData()
}) windows7Form.append('chat_id', CHAT_ID)
windows7Form.append('media', JSON.stringify(windows7Media))
const windows7Media = windows7Files.map((file, index) => ({ windows7Files.forEach((file, index) => {
type: 'document', windows7Form.append(`file${index}`, fs.createReadStream(file))
media: `attach://file${index}` })
})) await axios.post(
windows7Media[windows7Media.length - 1].caption = `#${hash} #Windows7 #Windows8\n${message}` `http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
const windows7Form = new FormData() windows7Form,
windows7Form.append('chat_id', CHAT_ID) {
windows7Form.append('media', JSON.stringify(windows7Media)) headers: windows7Form.getHeaders()
windows7Files.forEach((file, index) => { }
windows7Form.append(`file${index}`, fs.createReadStream(file)) )
}) break
}
const linuxMedia = linuxFiles.map((file, index) => ({ case 'macos': {
type: 'document', const macosFiles = [
media: `attach://file${index}` path.join(GITHUB_WORKSPACE, `mihomo-party-macos-${version}-arm64.pkg`),
})) path.join(GITHUB_WORKSPACE, `mihomo-party-macos-${version}-x64.pkg`)
linuxMedia[linuxMedia.length - 1].caption = `#${hash} #Linux\n${message}` ]
const linuxForm = new FormData() const macosMedia = macosFiles.map((file, index) => ({
linuxForm.append('chat_id', CHAT_ID) type: 'document',
linuxForm.append('media', JSON.stringify(linuxMedia)) media: `attach://file${index}`
linuxFiles.forEach((file, index) => { }))
linuxForm.append(`file${index}`, fs.createReadStream(file)) macosMedia[macosMedia.length - 1].caption = `#${hash} #macOS11+\n${message}`
}) const macosForm = new FormData()
macosForm.append('chat_id', CHAT_ID)
const macosMedia = macosFiles.map((file, index) => ({ macosForm.append('media', JSON.stringify(macosMedia))
type: 'document', macosFiles.forEach((file, index) => {
media: `attach://file${index}` macosForm.append(`file${index}`, fs.createReadStream(file))
})) })
macosMedia[macosMedia.length - 1].caption = `#${hash} #macOS11+\n${message}` await axios.post(
const macosForm = new FormData() `http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
macosForm.append('chat_id', CHAT_ID) macosForm,
macosForm.append('media', JSON.stringify(macosMedia)) {
macosFiles.forEach((file, index) => { headers: macosForm.getHeaders()
macosForm.append(`file${index}`, fs.createReadStream(file)) }
}) )
break
const macos10Media = macos10Files.map((file, index) => ({ }
type: 'document', case 'macos10': {
media: `attach://file${index}` const macos10Files = [
})) path.join(GITHUB_WORKSPACE, `mihomo-party-catalina-${version}-arm64.pkg`),
macos10Media[macos10Media.length - 1].caption = `#${hash} #macOS10+\n${message}` path.join(GITHUB_WORKSPACE, `mihomo-party-catalina-${version}-x64.pkg`)
const macos10Form = new FormData() ]
macos10Form.append('chat_id', CHAT_ID) const macos10Media = macos10Files.map((file, index) => ({
macos10Form.append('media', JSON.stringify(macos10Media)) type: 'document',
macos10Files.forEach((file, index) => { media: `attach://file${index}`
macos10Form.append(`file${index}`, fs.createReadStream(file)) }))
}) macos10Media[macos10Media.length - 1].caption = `#${hash} #macOS10+\n${message}`
const macos10Form = new FormData()
function sleep(ms) { macos10Form.append('chat_id', CHAT_ID)
return new Promise((resolve) => setTimeout(resolve, ms)) macos10Form.append('media', JSON.stringify(macos10Media))
macos10Files.forEach((file, index) => {
macos10Form.append(`file${index}`, fs.createReadStream(file))
})
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
macos10Form,
{
headers: macos10Form.getHeaders()
}
)
break
}
case 'linux': {
const linuxFiles = [
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-aarch64.rpm`),
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-arm64.deb`),
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-x86_64.rpm`),
path.join(GITHUB_WORKSPACE, `mihomo-party-linux-${version}-amd64.deb`)
]
const linuxMedia = linuxFiles.map((file, index) => ({
type: 'document',
media: `attach://file${index}`
}))
linuxMedia[linuxMedia.length - 1].caption = `#${hash} #Linux\n${message}`
const linuxForm = new FormData()
linuxForm.append('chat_id', CHAT_ID)
linuxForm.append('media', JSON.stringify(linuxMedia))
linuxFiles.forEach((file, index) => {
linuxForm.append(`file${index}`, fs.createReadStream(file))
})
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
linuxForm,
{
headers: linuxForm.getHeaders()
}
)
break
}
} }
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
windowsForm,
{
headers: windowsForm.getHeaders()
}
)
await sleep(10000)
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
windows7Form,
{
headers: windows7Form.getHeaders()
}
)
await sleep(10000)
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
macosForm,
{
headers: macosForm.getHeaders()
}
)
await sleep(10000)
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
macos10Form,
{
headers: macos10Form.getHeaders()
}
)
await sleep(10000)
await axios.post(
`http://127.0.0.1:8081/bot${process.env.TELEGRAM_BOT_TOKEN}/sendMediaGroup`,
linuxForm,
{
headers: linuxForm.getHeaders()
}
)