Skip to content

Commit e3719da

Browse files
committed
CI/CD: Rearranged some parts of the logic, many details and design flaws were changed during the deployment to the other repositories
1 parent fe284b1 commit e3719da

File tree

9 files changed

+102
-85
lines changed

9 files changed

+102
-85
lines changed

.github/workflows/build.yml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,26 @@ jobs:
3232
- uses: actions/checkout@v4
3333
- name: Get build dependencies and arrange the environment
3434
run: |
35+
export C_CLANG_SUFFIX="-15" C_GCC_SUFFIX="-12"
3536
export BUILD_DEPS="libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libsdl1.2-dev libsdl2-dev libvulkan-dev zlib1g-dev"
3637
./.github/workflows/scripts/ci_install_ubuntu_deps.sh ${{ matrix.arch }} ${{ matrix.cc }}
3738
- name: Build and related stuff, backup binaries
3839
run: |
40+
export C_CLANG_SUFFIX="-15" C_GCC_SUFFIX="-12"
3941
export PATH="$(pwd)/.github/workflows/scripts:${PATH}"
40-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG=\"sdl-config\"" POSTFIX="-old"
42+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG="sdl-config""
4143
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
42-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG=\"sdl-config\""
43-
unset POSTFIX
44+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG="sdl2-config""
4445
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
45-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG=\"sdl2-config\"" POSTFIX="-old"
46-
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
47-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG=\"sdl2-config\"" MAKE_PKG=1
48-
unset POSTFIX
46+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG="sdl-config" POSTFIX="-old""
4947
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
48+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG="sdl2-config" POSTFIX="-old""
49+
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }} makepkg
5050
- name: Upload artifact
5151
if: matrix.cc == 'GCC'
5252
uses: actions/upload-artifact@v4
5353
with:
54-
name: mupen64plus-core-linux-${{ matrix.arch }}-g${{ env.G_REV }}
54+
name: ${{ env.PKG_NAME }}
5555
path: pkg/*.tar.gz
5656

5757
MSYS2:
@@ -91,22 +91,20 @@ jobs:
9191
mingw-w64-${{ matrix.cross }}-SDL2
9292
mingw-w64-${{ matrix.cross }}-vulkan-headers
9393
mingw-w64-${{ matrix.cross }}-zlib
94-
mingw-w64-${{ matrix.cross }}-vulkan-headers
9594
- name: Build and related stuff, backup binaries
9695
run: |
9796
export PATH="$(pwd)/.github/workflows/scripts:${PATH}"
98-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0" POSTFIX="-old"
97+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1"
9998
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
100-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1"
101-
unset POSTFIX
99+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 POSTFIX="-old""
102100
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
103101
- name: Backup dependencies, etc...
104102
run: |
105103
./.github/workflows/scripts/ci_backup_mingw_deps.sh ${{ matrix.env }}
106104
- name: Upload artifact
107105
uses: actions/upload-artifact@v4
108106
with:
109-
name: mupen64plus-core-msys2-${{ matrix.arch }}-g${{ env.G_REV }}
107+
name: ${{ env.PKG_NAME }}
110108
path: pkg/*
111109

112110
MSVC:
@@ -140,7 +138,7 @@ jobs:
140138
- name: Upload artifact
141139
uses: actions/upload-artifact@v4
142140
with:
143-
name: mupen64plus-core-msvc-${{ matrix.arch }}-g${{ env.G_REV }}
141+
name: ${{ env.PKG_NAME }}
144142
path: pkg/*
145143

146144
Nightly-build:

.github/workflows/schedule.yml

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Core
1+
name: Core - Scheduled
22

33
on:
44
schedule:
@@ -26,26 +26,26 @@ jobs:
2626
- uses: actions/checkout@v4
2727
- name: Get build dependencies and arrange the environment
2828
run: |
29+
export C_CLANG_SUFFIX="-15" C_GCC_SUFFIX="-12"
2930
export BUILD_DEPS="libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libsdl1.2-dev libsdl2-dev libvulkan-dev zlib1g-dev"
3031
./.github/workflows/scripts/ci_install_ubuntu_deps.sh ${{ matrix.arch }} ${{ matrix.cc }}
3132
- name: Build and related stuff, backup binaries
3233
run: |
34+
export C_CLANG_SUFFIX="-15" C_GCC_SUFFIX="-12"
3335
export PATH="$(pwd)/.github/workflows/scripts:${PATH}"
34-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG=\"sdl-config\"" POSTFIX="-old"
36+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG="sdl-config""
3537
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
36-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG=\"sdl-config\""
37-
unset POSTFIX
38+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG="sdl2-config""
3839
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
39-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG=\"sdl2-config\"" POSTFIX="-old"
40-
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
41-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1 SDL_CONFIG=\"sdl2-config\"" MAKE_PKG=1
42-
unset POSTFIX
40+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG="sdl-config" POSTFIX="-old""
4341
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
42+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 SDL_CONFIG="sdl2-config" POSTFIX="-old""
43+
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }} makepkg
4444
- name: Upload artifact
4545
if: matrix.cc == 'GCC'
4646
uses: actions/upload-artifact@v4
4747
with:
48-
name: mupen64plus-core-linux-${{ matrix.arch }}-g${{ env.G_REV }}
48+
name: ${{ env.PKG_NAME }}
4949
path: pkg/*.tar.gz
5050

5151
MSYS2:
@@ -89,18 +89,17 @@ jobs:
8989
- name: Build and related stuff, backup binaries
9090
run: |
9191
export PATH="$(pwd)/.github/workflows/scripts:${PATH}"
92-
export BUILD_CONFIG="ACCURATE_FPU=0 NEW_DYNAREC=0" POSTFIX="-old"
92+
export CONFIG_OVERRIDE="ACCURATE_FPU=1 NEW_DYNAREC=1"
9393
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
94-
export BUILD_CONFIG="ACCURATE_FPU=1 NEW_DYNAREC=1"
95-
unset POSTFIX
94+
export CONFIG_OVERRIDE="ACCURATE_FPU=0 NEW_DYNAREC=0 POSTFIX="-old""
9695
ci_build.sh ${{ matrix.arch }} ${{ matrix.cc }}
9796
- name: Backup dependencies, etc...
9897
run: |
9998
./.github/workflows/scripts/ci_backup_mingw_deps.sh ${{ matrix.env }}
10099
- name: Upload artifact
101100
uses: actions/upload-artifact@v4
102101
with:
103-
name: mupen64plus-core-msys2-${{ matrix.arch }}-g${{ env.G_REV }}
102+
name: ${{ env.PKG_NAME }}
104103
path: pkg/*
105104

106105
MSVC:
@@ -135,7 +134,7 @@ jobs:
135134
- name: Upload artifact
136135
uses: actions/upload-artifact@v4
137136
with:
138-
name: mupen64plus-core-msvc-${{ matrix.arch }}-g${{ env.G_REV }}
137+
name: ${{ env.PKG_NAME }}
139138
path: pkg/*
140139

141140
Nightly-build:

.github/workflows/scripts/ci_backup_mingw_deps.sh

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ set -e +u
33

44
if [[ ${#} -ne 1 ]]; then exit 9; fi
55

6-
export ENV_MSYS="$(echo "${1}" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/)"
7-
export DEPS="$(LC_ALL=C grep "${ENV_MSYS}" "pkg/ldd.log" | sort | cut -d ' ' -f1)"
6+
export ENV_MSYS="$(echo "${1}" | tr [A-Z] [a-z])"
7+
export DEPS="$(LC_ALL=C grep "${ENV_MSYS}" pkg/ldd.log | tr -s '\t' ' ' | sort | cut -d ' ' -f4 | tr '\\' '/' | tr -d ':')"
88

9-
if [[ "${DEPS}" == "" ]]; then exit 0; fi
9+
rm -f pkg/ldd.log
10+
11+
if [[ "${DEPS}" == "" ]]; then
12+
echo ":: None..."
13+
exit 0
14+
fi
1015

1116
for LIB in ${DEPS}; do
12-
echo ":: Copying ${LIB}"
13-
cp "/${ENV_MSYS}/bin/${LIB}" pkg/
17+
echo ":: Copying ${LIB##*/}"
18+
cp "/${LIB}" pkg/
1419
done
1520

16-
rm -f pkg/ldd.log
17-
1821
exit 0

.github/workflows/scripts/ci_backup_msvc_deps.cmd

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,23 @@ for %%P in (%*) do (
1313
)
1414

1515
if not defined ARCH exit /b 7
16-
if not defined DEPS exit /b 6
1716

1817
if exist "data\" xcopy /e data pkg
19-
if errorlevel 1 exit /b 5
18+
if errorlevel 1 exit /b 6
2019
if exist "pkg\mupen64plus.desktop" del /f /q pkg\mupen64plus.desktop
2120

21+
if not defined DEPS (
22+
echo :: None...
23+
exit /b 0
24+
)
25+
2226
set PKG=%CD%\pkg
2327
cd ..\mupen64plus-win32-deps
24-
if errorlevel 1 exit /b 4
28+
if errorlevel 1 exit /b 5
2529
for %%D in (%DEPS%) do (
2630
for /f "tokens=*" %%T in ('dir /b /s %%D ^| findstr "%ARCH%"') do (
27-
if exist "%%T" copy "%%T" "%PKG%\"
28-
if errorlevel 1 exit /b 3
31+
if exist "%%T" xcopy "%%T" "%PKG%\"
32+
if errorlevel 1 exit /b 4
2933
)
3034
)
3135

.github/workflows/scripts/ci_build.sh

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ set -e +u
44
if [[ ${#} -lt 2 ]]; then exit 9; fi
55

66
unset ARCH_ARG CC_ARG
7-
export MULTILIB=0
8-
export ENV_ARGS="$(echo "${*}" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/)"
7+
export MAKE_PKG=0 MULTILIB=0
8+
export ENV_ARGS="$(echo "${*}" | tr [A-Z] [a-z])"
99

1010
for ARG in ${ENV_ARGS}; do
1111
case "${ARG}" in
1212
clang )
13-
export CC_ARG="Clang" CC="clang" CXX="clang++"
13+
export CC_ARG="Clang" CC="clang${C_CLANG_SUFFIX}" CXX="clang++${C_CLANG_SUFFIX}"
1414
;;
1515
gcc )
16-
export CC_ARG="GCC" CC="gcc" CXX="g++"
16+
export CC_ARG="GCC" CC="gcc${C_GCC_SUFFIX}" CXX="g++${C_GCC_SUFFIX}"
17+
;;
18+
makepkg )
19+
export MAKE_PKG=1
1720
;;
1821
multilib )
1922
export MULTILIB=1
@@ -33,7 +36,7 @@ if [[ -z ${CC_ARG} ]]; then exit 7; fi
3336
export REPO="${PWD##*/}"
3437
if [[ "${REPO}" == "" ]]; then exit 6; fi
3538

36-
export BIN_OS="$(uname -s | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/)"
39+
export BIN_OS="$(uname -s | tr [A-Z] [a-z])"
3740
if [[ ! -z ${MSYSTEM} ]]; then export BIN_OS="msys2"; fi
3841
export ENV_NAME="$(uname -s)"
3942
export LDD="ldd"
@@ -48,47 +51,55 @@ if [[ "${ENV_NAME}" == *"Linux"* ]]; then
4851
if [[ "${ARCH_ARG}" == "x86" ]]; then export PIC=1 PIE=1; fi
4952
if [[ ${MULTILIB} -eq 0 ]]; then
5053
if [[ "${CC_ARG}" == "GCC" ]]; then
51-
if [[ "${ARCH_ARG}" == "x86" ]]; then export CC="i686-linux-gnu-gcc" CXX="i686-linux-gnu-g++"; fi
54+
if [[ "${ARCH_ARG}" == "x86" ]]; then export CC="i686-linux-gnu-${CC}" CXX="i686-linux-gnu-${CXX}"; fi
5255
fi
5356
fi
5457
fi
5558

5659
if [[ "${ENV_NAME}" == *"MINGW"* ]]; then
57-
export INSTALL_OVERRIDE="PLUGINDIR=\"\" SHAREDIR=\"\" BINDIR=\"\" MANDIR=\"\" LIBDIR=\"\" APPSDIR=\"\" ICONSDIR=\"icons\" INCDIR=\"api\""
58-
export LDD="ntldd"
60+
export INSTALL_OVERRIDE="PLUGINDIR="" SHAREDIR="" BINDIR="" MANDIR="" LIBDIR="" APPSDIR="" ICONSDIR="icons" INCDIR="api""
61+
export LDD="ntldd -R"
5962
unset PKG_PATH
6063
fi
6164

6265
export G_REV="$(git rev-parse --short HEAD)"
66+
export PKG_NAME="${REPO}-${BIN_OS}-${ARCH_ARG}-g${G_REV}"
6367
if [[ -f "${GITHUB_ENV}" ]]; then
6468
set +e
65-
grep "G_REV=${G_REV}" "${GITHUB_ENV}" > /dev/null
66-
if [[ ${?} -ne 0 ]]; then echo "G_REV=${G_REV}" >> "${GITHUB_ENV}"; fi
69+
grep "PKG_NAME=${PKG_NAME}" "${GITHUB_ENV}" > /dev/null
70+
if [[ ${?} -ne 0 ]]; then echo "PKG_NAME=${PKG_NAME}" >> "${GITHUB_ENV}"; fi
6771
set -e
6872
fi
6973

7074
if [[ -z ${OPTFLAGS} ]]; then export OPTFLAGS="-O3 -flto ${CPU_TUNE}"; fi
7175

76+
echo ""
77+
echo ":: CC=${CC} CXX=${CXX} BITS=${BITS} ${CONFIG_OVERRIDE} ::"
7278
echo ""
7379
${CC} --version
7480
echo ""
7581

76-
make CC="${CC}" CXX="${CXX}" BITS="${BITS}" ${BUILD_CONFIG} -C projects/unix clean
77-
echo ""
78-
make CC="${CC}" CXX="${CXX}" BITS="${BITS}" ${BUILD_CONFIG} -C projects/unix all -j4
82+
make_clean () {
83+
make CC="${CC}" CXX="${CXX}" BITS=${BITS} ${CONFIG_OVERRIDE} -C projects/unix clean
84+
echo ""
85+
}
86+
87+
make_clean
88+
make CC="${CC}" CXX="${CXX}" BITS=${BITS} ${CONFIG_OVERRIDE} -C projects/unix all -j4
7989
echo ""
8090

8191
if [[ ! -d pkg ]]; then
8292
mkdir pkg
8393
chmod -R 755 pkg
8494
fi
95+
8596
pushd projects/unix > /dev/null
8697
export ARTIFACT="$(find *mupen64plus* -type f 2> /dev/null | head -n 1)"
8798
popd > /dev/null
8899

100+
make CC="${CC}" CXX="${CXX}" BITS=${BITS} ${CONFIG_OVERRIDE} -C projects/unix install ${INSTALL_OVERRIDE} DESTDIR="$(pwd)/pkg/"
89101
echo ""
90-
make CC="${CC}" CXX="${CXX}" BITS="${BITS}" ${BUILD_CONFIG} -C projects/unix install ${INSTALL_OVERRIDE} DESTDIR="$(pwd)/pkg/"
91-
echo ""
102+
make_clean
92103

93104
if [[ -z ${ARTIFACT} ]]; then
94105
exit 5
@@ -99,7 +110,7 @@ else
99110
${LDD} "${PKG_PATH}${ARTIFACT}" > ldd.log
100111
cat ldd.log
101112
echo ""
102-
if [[ "${MAKE_PKG}" == "1" ]]; then tar --owner=0 --group=0 --mode='og-w' -czf "${REPO}-${BIN_OS}-${ARCH_ARG}-g${G_REV}.tar.gz" usr; fi
113+
if [[ ${MAKE_PKG} -eq 1 ]]; then tar --owner=0 --group=0 --mode='og-w' -czf "${PKG_NAME}.tar.gz" usr; fi
103114
fi
104115

105116
exit 0

.github/workflows/scripts/ci_install_ubuntu_deps.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ set -e +u
44
if [[ ${#} -lt 2 ]]; then exit 9; fi
55

66
unset ARCH_DEP CC_DEP
7-
export BUILD_DEPS_I386="crossbuild-essential-i386 libc6-i386"
7+
export BUILD_DEPS_I386="crossbuild-essential-i386 g++${C_GCC_SUFFIX}-i686-linux-gnu gcc${C_GCC_SUFFIX}-i686-linux-gnu libc6-i386"
88
export HOTFIX_I386="libatomic1:i386 libgcc-s1:i386 libstdc++6:i386 ${HOTFIX_I386}"
9-
export ENV_ARGS="$(echo "${*}" | sed y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/)"
9+
export ENV_ARGS="$(echo "${*}" | tr [A-Z] [a-z])"
1010

1111
for ARG in ${ENV_ARGS}; do
1212
case "${ARG}" in
1313
clang )
14-
export CC_DEP="clang"
14+
export CC_DEP="clang${C_CLANG_SUFFIX}"
1515
;;
1616
gcc )
17-
export CC_DEP="g++ gcc"
17+
export CC_DEP="g++${C_GCC_SUFFIX} gcc${C_GCC_SUFFIX}"
1818
;;
1919
multilib )
20-
export BUILD_DEPS_I386="g++-multilib gcc-multilib libc6-dev-i386"
20+
export BUILD_DEPS_I386="g++${C_GCC_SUFFIX}-multilib gcc${C_GCC_SUFFIX}-multilib libc6-dev-i386"
2121
;;
2222
x64 )
2323
export ARCH_DEP="x64"
@@ -31,6 +31,7 @@ done
3131
if [[ -z ${ARCH_DEP} ]]; then exit 8; fi
3232
if [[ -z ${CC_DEP} ]]; then exit 7; fi
3333

34+
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
3435
if [[ "${ARCH_DEP}" == "x86" ]]; then sudo dpkg --add-architecture i386; fi
3536
sudo apt-get update
3637
sudo apt-get -y install build-essential git nasm pkg-config ${CC_DEP} ${BUILD_DEPS}

0 commit comments

Comments
 (0)