Первый релиз #20
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |