commit 0b6b6f7b78730092af7e93304427d22cd127a6d0
Author: Roman Fomin <rfomin@gmail.com>
AuthorDate: Thu Feb 1 01:50:15 2024 +0700
Commit: GitHub <noreply@github.com>
CommitDate: Wed Jan 31 19:50:15 2024 +0100
Add release step to CI workflow (#1643)
* Add release step to CI workflow
* Add RELEASE_NOTES.md
* Add 64-bit suffix for Windows packages
---
.github/workflows/main.yml | 49 +++++++++++++++++++++++++++++-----------------
RELEASE_NOTES.md | 1 +
configure.ac | 13 ++++++++++++
pkg/config.make.in | 2 ++
pkg/win32/GNUmakefile | 14 +++++++++----
5 files changed, 57 insertions(+), 22 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index fdee9ee0..b17b90eb 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -4,6 +4,8 @@ on:
push:
branches:
- "master"
+ tags:
+ - "*"
paths-ignore:
- "**.md"
pull_request:
@@ -33,6 +35,9 @@ jobs:
os: macos-latest
compiler: clang
shell: bash
+ artifacts: true
+ pkg-path: pkg/osx/*.dmg
+ pkg-dir: pkg/osx
- name: MSYS2 UCRT64
os: windows-latest
@@ -40,6 +45,9 @@ jobs:
shell: 'msys2 {0}'
msystem: ucrt64
msys-env: mingw-w64-ucrt-x86_64
+ artifacts: true
+ pkg-path: pkg/win32/*.zip
+ pkg-dir: pkg/win32
- name: MSYS2 MINGW32
os: windows-latest
@@ -47,6 +55,9 @@ jobs:
shell: 'msys2 {0}'
msystem: mingw32
msys-env: mingw-w64-i686
+ artifacts: true
+ pkg-path: pkg/win32/*.zip
+ pkg-dir: pkg/win32
steps:
- name: Install pandoc
@@ -115,28 +126,30 @@ jobs:
PREFIX=`sed -n '/PROGRAM_PREFIX/p' ${PWD}/config.h | cut -d '"' -f 2`
make -j4 -C quickcheck check SOURCE_PORT=$PWD/src/${PREFIX}doom
- - name: Package (macOS)
- if: runner.os == 'macOS'
- run: |
- cd pkg/osx
- make
-
- - name: Package (MSYS2)
- if: runner.os == 'Windows'
+ - name: Package
+ if: ${{ matrix.config.artifacts }}
run: |
- cd pkg/win32
+ cd ${{ matrix.config.pkg-dir }}
make
- - name: Upload artifacts (macOS)
- if: runner.os == 'macOS'
+ - name: Upload artifacts
+ if: ${{ matrix.config.artifacts }}
uses: actions/upload-artifact@v3
with:
- name: macOS
- path: pkg/osx/*.dmg
+ name: ${{ matrix.config.name }}
+ path: ${{ matrix.config.pkg-path }}
- - name: Upload artifacts (MSYS2)
- if: runner.os == 'Windows'
- uses: actions/upload-artifact@v3
+ - name: Extract Package String
+ if: ${{ contains(github.ref, 'tags') }}
+ run: |
+ PACKAGE_STRING=`sed -n '/PACKAGE_STRING/p' ${PWD}/config.h | cut -d '"' -f 2`
+ echo "PACKAGE_STRING=${PACKAGE_STRING}" >> $GITHUB_ENV
+
+ - name: Release
+ if: ${{ contains(github.ref, 'tags') && matrix.config.artifacts }}
+ uses: ncipollo/release-action@v1
with:
- name: Win-${{ matrix.config.msystem }}
- path: pkg/win32/*.zip
+ name: ${{ env.PACKAGE_STRING }}
+ bodyFile: RELEASE_NOTES.md
+ allowUpdates: true
+ artifacts: ${{ matrix.config.pkg-path }}
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
new file mode 100644
index 00000000..345e6aef
--- /dev/null
+++ b/RELEASE_NOTES.md
@@ -0,0 +1 @@
+Test
diff --git a/configure.ac b/configure.ac
index d464f579..8f0cf923 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,6 +31,19 @@ then
CFLAGS="-O$OPT_LEVEL -g $WARNINGS $orig_CFLAGS"
fi
+AC_CANONICAL_TARGET
+TARGET_OS=""
+AS_CASE([$target_cpu],
+ [x86_64|aarch64*],
+ [
+ TARGET_OS="64"
+ ],
+ [i?86|arm*],
+ [
+ TARGET_OS="32"
+ ])
+AC_SUBST([TARGET_OS])
+
PKG_CHECK_MODULES(SDL, [sdl2 >= 2.0.14])
# Check for SDL2_mixer
AC_ARG_ENABLE([sdl2mixer],
diff --git a/pkg/config.make.in b/pkg/config.make.in
index b08a2f97..972be10e 100644
--- a/pkg/config.make.in
+++ b/pkg/config.make.in
@@ -19,6 +19,8 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
+TARGET_OS = @TARGET_OS@
+
# Documentation files to distribute with packages.
DOC_FILES = README.md \
diff --git a/pkg/win32/GNUmakefile b/pkg/win32/GNUmakefile
index 32c32e87..e14f564e 100644
--- a/pkg/win32/GNUmakefile
+++ b/pkg/win32/GNUmakefile
@@ -3,10 +3,16 @@ include ../config.make
TOPLEVEL=../..
-DOOM_ZIP=$(PROGRAM_PREFIX)doom-$(PACKAGE_VERSION)-win32.zip
-HERETIC_ZIP=$(PROGRAM_PREFIX)heretic-$(PACKAGE_VERSION)-win32.zip
-HEXEN_ZIP=$(PROGRAM_PREFIX)hexen-$(PACKAGE_VERSION)-win32.zip
-STRIFE_ZIP=$(PROGRAM_PREFIX)strife-$(PACKAGE_VERSION)-win32.zip
+ifeq ($(TARGET_OS),64)
+ POSTFIX=win64
+else
+ POSTFIX=win32
+endif
+
+DOOM_ZIP=$(PROGRAM_PREFIX)doom-$(PACKAGE_VERSION)-$(POSTFIX).zip
+HERETIC_ZIP=$(PROGRAM_PREFIX)heretic-$(PACKAGE_VERSION)-$(POSTFIX).zip
+HEXEN_ZIP=$(PROGRAM_PREFIX)hexen-$(PACKAGE_VERSION)-$(POSTFIX).zip
+STRIFE_ZIP=$(PROGRAM_PREFIX)strife-$(PACKAGE_VERSION)-$(POSTFIX).zip
ZIPS=$(DOOM_ZIP) $(HERETIC_ZIP) $(HEXEN_ZIP) $(STRIFE_ZIP)
DLL_FILES=$(TOPLEVEL)/src/SDL.dll \