Skip to content

Commit fed84af

Browse files
Actions | Combine functionality in a single action
1 parent 77fad25 commit fed84af

1 file changed

Lines changed: 66 additions & 18 deletions

File tree

.github/workflows/build-and-release.yml

Lines changed: 66 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,19 @@ on:
55
branches:
66
- main
77
- release-process
8-
8+
9+
env:
10+
WINDOWS_RELEASE_TAG: windows-x64-opensemba-tessellator-draft
11+
LINUX_RELEASE_TAG: linux-opensemba-tessellator-draft
12+
WINDOWS_FILENAME: "opensemba-tessellator-windows-x64.tar.gz"
13+
LINUX_FILENAME: "opensemba-tessellator-linux.tar.gz"
14+
915
concurrency:
1016
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
1117
cancel-in-progress: true
1218

1319
jobs:
14-
builds-and-tests:
20+
build-temporary-releases:
1521
strategy:
1622
matrix:
1723
preset: [
@@ -68,38 +74,80 @@ jobs:
6874
if: matrix.preset.name=='gnu'
6975
run: build/bin/tessellator_tests
7076

71-
- name: Get current date
72-
id: date
73-
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
74-
7577
- name: Create linux .tar file
7678
if: matrix.preset.name=='gnu'
7779
run: |
78-
cd build/bin && tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz *
80+
cd build/bin
81+
tar --exclude="*test*" -czvf ${{ env.LINUX_FILENAME }} *
7982
8083
- name: Create windows .tar file
8184
if: matrix.preset.name=='msbuild'
8285
run: |
83-
cd build/bin/${{matrix.build-type}} && tar --exclude="*test*" -czvf opensemba-tessellator-${{matrix.preset.filename}}.tar.gz *
86+
cd build/bin/${{matrix.build-type}}
87+
tar --exclude="*test*" --exclude="*.gz" -czvf ${{ env.WINDOWS_FILENAME }} *
8488
85-
- name: Generating linux release
89+
- name: Generating linux pre-release
8690
if: matrix.preset.name=='gnu'
8791
uses: "marvinpinto/action-automatic-releases@latest"
8892
with:
8993
repo_token: "${{ secrets.GITHUB_TOKEN }}"
90-
automatic_release_tag: "${{ steps.date.outputs.date }}-${{matrix.preset.filename}}-opensemba-tessellator"
91-
prerelease: True
92-
title: "${{ steps.date.outputs.date }} ${{matrix.preset.filename}} OpenSemba Tessellator release"
94+
automatic_release_tag: "${{ env.LINUX_RELEASE_TAG }}"
95+
draft: True
96+
title: "${{matrix.preset.filename}} OpenSemba Tessellator draft release"
9397
files: |
94-
build/bin/opensemba-tessellator-${{matrix.preset.filename}}.tar.gz
98+
build/bin/${{ env.LINUX_FILENAME }}
9599
96-
- name: Generating windows release
100+
- name: Generating windows pre-release
97101
if: matrix.preset.name=='msbuild'
98102
uses: "marvinpinto/action-automatic-releases@latest"
99103
with:
100104
repo_token: "${{ secrets.GITHUB_TOKEN }}"
101-
automatic_release_tag: "${{ steps.date.outputs.date }}-${{matrix.preset.filename}}-opensemba-tessellator"
102-
prerelease: True
103-
title: "${{ steps.date.outputs.date }} ${{matrix.preset.filename}} OpenSemba Tessellator release"
105+
automatic_release_tag: "${{ env.WINDOWS_RELEASE_TAG }}"
106+
draft: True
107+
title: "${{matrix.preset.filename}} OpenSemba Tessellator draft release"
104108
files: |
105-
build/bin/${{matrix.build-type}}/opensemba-tessellator-${{matrix.preset.filename}}.tar.gz
109+
build/bin/${{matrix.build-type}}/${{ env.WINDOWS_FILENAME }}
110+
111+
make-release:
112+
name: combine releases
113+
runs-on: ubuntu-latest
114+
needs: build-temporary-releases
115+
116+
steps:
117+
- name: download windows tar file
118+
uses: robinraju/release-downloader@v1
119+
with:
120+
repository: OpenSEMBA/tessellator
121+
tag: ${{env.WINDOWS_RELEASE_TAG}}
122+
fileName: ${{env.WINDOWS_FILENAME}}
123+
124+
- name: download linux tar file
125+
uses: robinraju/release-downloader@v1
126+
with:
127+
repository: OpenSEMBA/tessellator
128+
tag: ${{env.LINUX_RELEASE_TAG}}
129+
fileName: ${{env.LINUX_FILENAME}}
130+
131+
- name: Get current date
132+
id: date
133+
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
134+
135+
- name: Generating release
136+
uses: "marvinpinto/action-automatic-releases@latest"
137+
with:
138+
repo_token: "${{ secrets.GITHUB_TOKEN }}"
139+
automatic_release_tag: "${{ steps.date.outputs.date }}-opensemba-tessellator"
140+
draft: True
141+
title: "${{matrix.preset.filename}} OpenSemba Tessellator release"
142+
files: |
143+
${{env.WINDOWS_FILENAME}}
144+
${{env.LINUX_FILENAME}}
145+
146+
- name: Clean old pre-release
147+
uses: "sgpublic/[email protected]"
148+
with:
149+
draft-drop: true
150+
draft-keep-count: -1
151+
draft-drop-tag: true
152+
env:
153+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

0 commit comments

Comments
 (0)