Welcome to mirror list, hosted at ThFree Co, Russian Federation.

release.yml « workflows « .github - github.com/ClusterM/NesTiler.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4bba8a080a23b884e02fe28156e1c4ed386434ac (plain)
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
name: Create release

on:
  workflow_dispatch:

jobs:
  create-release: 
    runs-on: ubuntu-latest
    steps:
    - name: Create Release
      id: create_release
      uses: ncipollo/release-action@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        tag: ${{ github.head_ref || github.ref_name }} 
        commit: master
        name: Release ${{ github.head_ref || github.ref_name }} 
        draft: true
    - name: Output 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@v3
      with:
        name: release_url
        path: release_url.txt

  publish:
    needs: create-release
    runs-on: ubuntu-latest
    strategy:
      matrix:
        os: [win, linux, osx]
        arch: [x86, x64, arm, arm64]
        sc: [no-self-contained, self-contained]
        exclude:
          - os: linux
            arch: x86
          - os: osx
            arch: x86
          - os: osx
            arch: arm          
    env:
      APP_NAME: nestiler
      PROJECT_PATH: NesTiler
      OUTPUT_DIR: output
      CONFIGURATION: Release
      OUTPUT_SUBDIR: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.sc }}
      OUTPUT_FILE: nestiler-${{ matrix.os }}-${{ matrix.arch }}${{ matrix.sc == 'self-contained' && '-self-contained' || '' }}.${{ matrix.os == 'win' && 'zip' || 'tar.gz' }}
    steps:
    - name: Fix line endings
      run: git config --global core.autocrlf false
    - name: Checkout
      uses: actions/checkout@v3
    - name: Setup .NET
      uses: actions/setup-dotnet@v2
      with:
        dotnet-version: 6.0.x
    - name: Build
      env:
        SC_OPS: ${{ matrix.sc == 'self-contained' && '--self-contained true -p:PublishTrimmed=False' || '--no-self-contained' }}
      run: dotnet publish ${{ env.PROJECT_PATH }} -c ${{ env.CONFIGURATION }} -r ${{ matrix.os }}-${{ matrix.arch }} ${{ env.SC_OPS }} -o ${{ env.OUTPUT_DIR }}/${{ env.OUTPUT_SUBDIR }}/${{ env.APP_NAME }}
    - name: Archive
      working-directory: ${{ env.OUTPUT_DIR }}/${{ env.OUTPUT_SUBDIR }}
      env:
        CMD: ${{ matrix.os == 'win' && 'zip -r9' || 'tar -czvf' }}
      run: |
        ${{ env.CMD }} ../../${{ env.OUTPUT_FILE }} ${{ env.APP_NAME }}
    - 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
      env:
        TAG_REF_NAME: ${{ github.head_ref || github.ref_name }}
        REPOSITORY_NAME: ${{ github.repository }}
      run: |
        echo file_name=${REPOSITORY_NAME##*/}-${TAG_REF_NAME##*/v} >> $GITHUB_OUTPUT
        value=`cat release_url/release_url.txt`
        echo name=upload_url=$value >> $GITHUB_OUTPUT
    - name: Upload
      uses: actions/upload-release-asset@v1
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        MIME: ${{ matrix.os == 'win' && 'zip' || 'tar.gz' }}
      with:
        upload_url: ${{ steps.get_release_info.outputs.upload_url }}
        asset_path: ${{ env.OUTPUT_FILE }}
        asset_name: ${{ env.OUTPUT_FILE }}
        asset_content_type: ${{ env.MIME }}