50 lines
1.3 KiB
YAML
50 lines
1.3 KiB
YAML
name: release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
# Ручной запуск: тег создаётся при публикации на коммите, с которого запущен workflow.
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: 'Тег релиза, например v0.4.0'
|
|
required: true
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
TAG: ${{ github.event_name == 'workflow_dispatch' && inputs.tag || github.ref_name }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Build frontend
|
|
working-directory: awg-ui
|
|
run: |
|
|
npm install
|
|
npm run build
|
|
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
# Архив на архитектуру: Go-бинарник awg-control + собранный фронтенд + .env.
|
|
- name: Package archives
|
|
run: sh tools/release/package.sh "${TAG#v}"
|
|
|
|
- name: Publish release
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: |
|
|
VERSION="${TAG#v}"
|
|
gh release create "${TAG}" awgcontrol-"${VERSION}"-linux-*.tar.gz \
|
|
--target "${GITHUB_SHA}" --title "${TAG}" --generate-notes --prerelease
|