123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- name: release
- on:
- push:
- tags:
- - 'v*'
- permissions:
- contents: write
- jobs:
- release:
- if: startsWith(github.ref, 'refs/tags/')
- runs-on: ubuntu-latest
- steps:
- - name: Build Changelog
- id: github_release
- uses: mikepenz/release-changelog-builder-action@v3
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- configurationJson: |
- {
- "template": "#{{CHANGELOG}}\n\n<details>\n<summary>",
- "pr_template": "- #{{TITLE}} ##{{NUMBER}} (Thanks @#{{AUTHOR}})",
- "categories": [
- {
- "title": "## 🚀 Features",
- "labels": ["feature"]
- },
- {
- "title": "## ✨ Enhancement",
- "labels": ["enhancement"]
- },
- {
- "title": "## 🐛 Fixes",
- "labels": ["fix"]
- },
- {
- "title": "## 💬 Other",
- "labels": ["other"]
- }
- ]
- }
- - name: Create Release
- id: create_release
- uses: mikepenz/action-gh-release@v0.2.0-a03
- with:
- body: ${{steps.github_release.outputs.changelog}}
- draft: true
- - name: Create release url file
- run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
- - name: Save release url file for publish
- uses: actions/upload-artifact@v1
- with:
- name: release_url
- path: release_url.txt
- publish:
- needs: [release]
- strategy:
- matrix:
- os: [macos-latest, ubuntu-latest, windows-latest]
- runs-on: ${{ matrix.os }}
- steps:
- - uses: actions/checkout@v2
- with:
- submodules: true
- - uses: conda-incubator/setup-miniconda@v3
- with:
- auto-update-conda: true
- python-version: '3.9'
- - name: Install main
- shell: bash -l {0}
- run: |
- pip install .
- - name: Run pyinstaller
- shell: bash -l {0}
- run: |
- pip install pyinstaller
- pyinstaller labelme.spec
- - name: Load release url file from release job
- uses: actions/download-artifact@v1
- with:
- name: release_url
- - name: Get release file name & upload url
- id: get_release_info
- run: |
- echo "::set-output name=upload_url::$(cat release_url/release_url.txt)"
- - name: Upload release executable on macOS & Linux
- id: upload_release_executable_macos_linux
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.get_release_info.outputs.upload_url }}
- asset_path: ./dist/labelme
- asset_name: labelme-${{ runner.os }}
- asset_content_type: application/octet-stream
- if: runner.os != 'Windows'
- - name: Upload release executable on Windows
- id: upload_release_executable_windows
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.get_release_info.outputs.upload_url }}
- asset_path: ./dist/labelme.exe
- asset_name: Labelme.exe
- asset_content_type: application/octet-stream
- if: runner.os == 'Windows'
- - name: Create dmg for macOS
- run: |
- npm install -g create-dmg
- cd dist
- create-dmg Labelme.app || test -f Labelme\ 0.0.0.dmg
- mv Labelme\ 0.0.0.dmg Labelme.dmg
- if: runner.os == 'macOS'
- - name: Upload release app on macOS
- id: upload_release_app_macos
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.get_release_info.outputs.upload_url }}
- asset_path: ./dist/Labelme.dmg
- asset_name: Labelme.dmg
- asset_content_type: application/octet-stream
- if: runner.os == 'macOS'
|