Skip to content

Первый релиз #20

Первый релиз

Первый релиз #20

Workflow file for this run

name: Build Executable and Publish Release
on:
push:
branches:
- main
jobs:
create-release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: actions/github-script@v4
with:
github-token: ${{ secrets.TOKEN_FOR_PUBLIC }}
script: |
const { data: latestRelease } = await github.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
});
let currentVersion = latestRelease ? latestRelease.tag_name : "v0.0.0";
let versionComponents = currentVersion.replace('v', '').split('.').map(Number);
versionComponents[2]++;
const nextVersion = `v${versionComponents.join('.')}`;
const releaseResponse = await github.repos.createRelease({
owner: context.repo.owner,
repo: context.repo.repo,
tag_name: nextVersion,
name: nextVersion,
body: "",
draft: false,
prerelease: false
});
console.log(`Created release ${nextVersion}`);
console.log(releaseResponse.data);
const uploadUrl = releaseResponse.data.upload_url;
console.log(`Upload URL: ${uploadUrl}`);
// Сохраняем значение в файле среды
core.setOutput('upload_url', uploadUrl);
build-macos:
runs-on: macos-latest
needs: create-release
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Get upload URL from create-release
run: echo "UPLOAD_URL=${{ needs.create-release.outputs.upload_url }}" >> $GITHUB_ENV
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Install pyinstaller
run: |
pip install pyinstaller
- name: Build executable
run: |
pyinstaller --onefile main.py
mv dist/main dist/Lesta_Cluster_Selector
chmod +x dist/Lesta_Cluster_Selector
- name: Create zip archive
run: zip -j Lesta_Cluster_Selector_MacOS.zip dist/Lesta_Cluster_Selector
- name: Upload MacOS Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.TOKEN_FOR_PUBLIC }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: Lesta_Cluster_Selector_MacOS.zip
asset_name: Lesta_Cluster_Selector_MacOS.zip
asset_content_type: application/zip
build-windows:
runs-on: windows-latest
needs: create-release
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Get upload URL from create-release
run: echo "UPLOAD_URL=${{ needs.create-release.outputs.upload_url }}" >> $env:GITHUB_ENV
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Install pyinstaller
run: |
pip install pyinstaller
- name: Build Windows executable
run: |
pyinstaller --onefile main.py
mv dist/main.exe dist/Lesta_Cluster_Selector.exe
- name: Create Windows zip archive
run: Compress-Archive -Path dist/Lesta_Cluster_Selector.exe -DestinationPath Lesta_Cluster_Selector_Windows.zip
- name: Upload Windows Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.TOKEN_FOR_PUBLIC }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: Lesta_Cluster_Selector_Windows.zip
asset_name: Lesta_Cluster_Selector_Windows.zip
asset_content_type: application/zip