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