mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-28 05:51:59 -08:00
improve release workflow
This commit is contained in:
parent
f7c08f577a
commit
c769088e6b
1 changed files with 34 additions and 16 deletions
50
.github/workflows/release.yml
vendored
50
.github/workflows/release.yml
vendored
|
|
@ -14,30 +14,48 @@ jobs:
|
|||
|
||||
- run: make release
|
||||
|
||||
- uses: actions/create-release@v1
|
||||
id: create_release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: ${{ github.ref }}
|
||||
|
||||
- uses: actions/github-script@v2
|
||||
env:
|
||||
RELEASE_ID: ${{ steps.create_release.outputs.id }}
|
||||
- uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const fs = require('fs').promises;
|
||||
const { repo: { owner, repo } } = context;
|
||||
|
||||
for (let file of await fs.readdir('./release/')) {
|
||||
await github.repos.uploadReleaseAsset({
|
||||
const currentRelease = context.ref.split('/')[2];
|
||||
|
||||
let res = await github.rest.repos.getLatestRelease({
|
||||
owner,
|
||||
repo,
|
||||
});
|
||||
const previousRelease = res.data['tag_name'];
|
||||
|
||||
res = await github.rest.repos.compareCommitsWithBasehead({
|
||||
owner,
|
||||
repo,
|
||||
basehead: `${previousRelease}...${currentRelease}`,
|
||||
});
|
||||
|
||||
const messages = [];
|
||||
for (const commit of res.data.commits) {
|
||||
messages.push(`* ${commit.commit.message} ${commit.html_url}`);
|
||||
}
|
||||
|
||||
res = await github.rest.repos.createRelease({
|
||||
owner,
|
||||
repo,
|
||||
tag_name: currentRelease,
|
||||
name: currentRelease,
|
||||
body: `Commits:\n${messages.join('\n')}\n`,
|
||||
});
|
||||
const release_id = res.data.id;
|
||||
|
||||
for (const name of await fs.readdir('./release/')) {
|
||||
await github.rest.repos.uploadReleaseAsset({
|
||||
owner,
|
||||
repo,
|
||||
release_id: process.env.RELEASE_ID,
|
||||
name: file,
|
||||
data: await fs.readFile(`./release/${file}`)
|
||||
release_id,
|
||||
name,
|
||||
data: await fs.readFile(`./release/${name}`),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue