File: release.yml

package info (click to toggle)
labelme 5.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 31,744 kB
  • sloc: python: 6,013; xml: 147; makefile: 22
file content (142 lines) | stat: -rw-r--r-- 3,948 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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": "## 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'