Skip to content

Commit cb22c59

Browse files
committed
chore: add release workflow
1 parent 5d4d56f commit cb22c59

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

.github/workflows/build.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,51 @@ jobs:
148148
path: |
149149
sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip
150150
151+
release:
152+
if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }}
153+
154+
runs-on: ubuntu-latest
155+
156+
needs:
157+
- ubuntu-latest-cmake
158+
- macOS-latest-cmake
159+
- windows-latest-cmake
160+
161+
steps:
162+
- name: Download artifacts
163+
id: download-artifact
164+
uses: actions/download-artifact@v3
165+
166+
- name: Get commit hash
167+
id: commit
168+
uses: pr-mpt/actions-commit-hash@v2
169+
170+
- name: Create release
171+
id: create_release
172+
uses: anzz1/action-create-release@v1
173+
env:
174+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
175+
with:
176+
tag_name: ${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}
177+
178+
- name: Upload release
179+
id: upload_release
180+
uses: actions/github-script@v3
181+
with:
182+
github-token: ${{secrets.GITHUB_TOKEN}}
183+
script: |
184+
const path = require('path');
185+
const fs = require('fs');
186+
const release_id = '${{ steps.create_release.outputs.id }}';
187+
for (let file of await fs.readdirSync('./artifact')) {
188+
if (path.extname(file) === '.zip') {
189+
console.log('uploadReleaseAsset', file);
190+
await github.repos.uploadReleaseAsset({
191+
owner: context.repo.owner,
192+
repo: context.repo.repo,
193+
release_id: release_id,
194+
name: file,
195+
data: await fs.readFileSync(`./artifact/${file}`)
196+
});
197+
}
198+
}

0 commit comments

Comments
 (0)