Solvespace

Форк
0
193 строки · 6.0 Кб
1
name: CD
2

3
on:
4
  push:
5
    branches:
6
      - master
7
  release:
8
    types:
9
      - created
10

11
jobs:
12
  cancel_previous_runs:
13
    runs-on: ubuntu-latest
14
    name: Cancel Previous Runs
15
    permissions:
16
      actions: write
17
    steps:
18
    - uses: styfle/cancel-workflow-action@0.9.1
19
      with:
20
        access_token: ${{ github.token }}
21

22
  test_ubuntu:
23
    needs: [cancel_previous_runs]
24
    runs-on: ubuntu-latest
25
    name: Test Ubuntu
26
    steps:
27
    - uses: actions/checkout@v2
28
    - name: Install Dependencies
29
      run: .github/scripts/install-ubuntu.sh
30
    - name: Build & Test
31
      run: .github/scripts/build-ubuntu.sh
32

33
  test_windows:
34
    needs: [cancel_previous_runs]
35
    runs-on: windows-2019
36
    name: Test Windows
37
    steps:
38
    - uses: actions/checkout@v2
39
    - name: Install Dependencies
40
      run: .github/scripts/install-windows.sh
41
      shell: bash
42
    - name: Build & Test
43
      run: .github/scripts/build-windows.sh
44
      shell: bash
45

46
  test_macos:
47
    needs: [cancel_previous_runs]
48
    runs-on: macos-latest
49
    name: Test macOS
50
    steps:
51
    - uses: actions/checkout@v2
52
    - name: Install Dependencies
53
      run: .github/scripts/install-macos.sh ci
54
    - name: Build & Test
55
      run: .github/scripts/build-macos.sh debug arm64 && .github/scripts/build-macos.sh debug x86_64
56

57
  build_release_windows:
58
    needs: [test_ubuntu, test_windows, test_macos]
59
    name: Build Release Windows
60
    runs-on: windows-2019
61
    steps:
62
      - uses: actions/checkout@v2
63
      - name: Install Dependencies
64
        run: .github/scripts/install-windows.sh
65
        shell: bash
66
      - name: Build & Test
67
        run: .github/scripts/build-windows.sh release
68
        shell: bash
69
      - name: Upload artifact
70
        uses: actions/upload-artifact@v2
71
        with:
72
          name: windows
73
          path: build/bin/RelWithDebInfo/solvespace.exe
74

75
  build_release_windows_openmp:
76
    needs: [test_ubuntu, test_windows, test_macos]
77
    name: Build Release Windows (OpenMP)
78
    runs-on: windows-2019
79
    steps:
80
      - uses: actions/checkout@v2
81
      - name: Install Dependencies
82
        run: .github/scripts/install-windows.sh
83
        shell: bash
84
      - name: Build & Test
85
        run: .github/scripts/build-windows.sh release openmp
86
        shell: bash
87
      - name: Upload artifact
88
        uses: actions/upload-artifact@v2
89
        with:
90
          name: windows-openmp
91
          path: build/bin/RelWithDebInfo/solvespace-openmp.exe
92

93
  build_release_macos:
94
    needs: [test_ubuntu, test_windows, test_macos]
95
    name: Build Release macOS
96
    runs-on: macos-latest
97
    steps:
98
    - uses: actions/checkout@v2
99
    - name: Install Dependencies
100
      run: .github/scripts/install-macos.sh ci
101
    - name: Build & Test
102
      run: .github/scripts/build-macos.sh release arm64 && .github/scripts/build-macos.sh release x86_64
103
    - name: Sign Build
104
      run: .github/scripts/sign-macos.sh
105
      env:
106
        MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
107
        MACOS_CERTIFICATE_P12: ${{ secrets.MACOS_CERTIFICATE_P12 }}
108
        MACOS_APPSTORE_APP_PASSWORD: ${{ secrets.MACOS_APPSTORE_APP_PASSWORD }}
109
        MACOS_APPSTORE_USERNAME: ${{ secrets.MACOS_APPSTORE_USERNAME }}
110
        MACOS_DEVELOPER_ID: ${{ secrets.MACOS_DEVELOPER_ID }}
111
    - name: Upload artifact
112
      uses: actions/upload-artifact@v2
113
      with:
114
        name: macos
115
        path: build/bin/SolveSpace.dmg
116

117
  # deploy_snap_amd64:
118
  #   needs: [test_ubuntu, test_windows, test_macos]
119
  #   name: Deploy AMD64 Snap
120
  #   runs-on: ubuntu-latest
121
  #   steps:
122
  #   - uses: actions/checkout@v2
123
  #   - name: Fetch Tags
124
  #     run: git fetch --force --tags
125
  #   - name: Set Up Source
126
  #     run: rsync --filter=":- .gitignore" -r ./ pkg/snap/solvespace-snap-src
127
  #   - name: Build Snap
128
  #     uses: snapcore/action-build@v1
129
  #     id: build
130
  #     with:
131
  #       path: pkg/snap
132
  #   - name: Upload & Release to Edge
133
  #     if: github.event_name == 'push'
134
  #     uses: snapcore/action-publish@v1
135
  #     env:
136
  #       SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPSTORE_LOGIN }}
137
  #     with:
138
  #       snap: ${{ steps.build.outputs.snap }}
139
  #       release: edge
140
  #   - name: Upload & Release to Beta + Edge
141
  #     if: github.event_name == 'release'
142
  #     uses: snapcore/action-publish@v1
143
  #     with:
144
  #       store_login: ${{ secrets.SNAPSTORE_LOGIN }}
145
  #       snap: ${{ steps.build.outputs.snap }}
146
  #       release: edge,beta
147

148
  upload_release_assets:
149
    name: Upload Release Assets
150
    needs: [build_release_windows, build_release_windows_openmp, build_release_macos]
151
    if: "!cancelled() && github.event_name == 'release'"
152
    runs-on: ubuntu-latest
153
    steps:
154
    - name: Download All Workflow Artifacts
155
      uses: actions/download-artifact@v2
156
    - name: Get Release Upload URL
157
      id: get_upload_url
158
      env:
159
        event: ${{ toJson(github.event) }}
160
      run: |
161
        upload_url=$(echo "$event" | jq -r ".release.upload_url")
162
        echo "::set-output name=upload_url::$upload_url"
163
        echo "Upload URL: $upload_url"
164
    - name: Upload solvespace.exe
165
      uses: actions/upload-release-asset@v1
166
      continue-on-error: true
167
      env:
168
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
169
      with:
170
        upload_url: ${{ steps.get_upload_url.outputs.upload_url }}
171
        asset_path: windows/solvespace.exe
172
        asset_name: solvespace.exe
173
        asset_content_type: binary/octet-stream
174
    - name: Upload solvespace-openmp.exe
175
      uses: actions/upload-release-asset@v1
176
      continue-on-error: true
177
      env:
178
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
179
      with:
180
        upload_url: ${{ steps.get_upload_url.outputs.upload_url }}
181
        asset_path: windows-openmp/solvespace-openmp.exe
182
        asset_name: solvespace-openmp.exe
183
        asset_content_type: binary/octet-stream
184
    - name: Upload SolveSpace.dmg
185
      uses: actions/upload-release-asset@v1
186
      continue-on-error: true
187
      env:
188
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
189
      with:
190
        upload_url: ${{ steps.get_upload_url.outputs.upload_url }}
191
        asset_path: macos/SolveSpace.dmg
192
        asset_name: SolveSpace.dmg
193
        asset_content_type: binary/octet-stream
194

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.