mirror of
https://github.com/mupen64plus/mupen64plus-video-z64.git
synced 2024-06-01 18:57:48 -04:00
CI/CD: Update
This commit is contained in:
parent
cc88607f98
commit
ed6745bed6
114
.github/workflows/build.yml
vendored
114
.github/workflows/build.yml
vendored
|
@ -20,20 +20,53 @@ jobs:
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- cc: GCC
|
- cc: GCC
|
||||||
|
platform: x64
|
||||||
|
bits: 64
|
||||||
|
- cc: GCC
|
||||||
|
platform: x86
|
||||||
|
bits: 32
|
||||||
- cc: Clang
|
- cc: Clang
|
||||||
name: Linux / ${{ matrix.cc }} / x64
|
platform: x64
|
||||||
runs-on: ubuntu-20.04
|
bits: 64
|
||||||
|
- cc: Clang
|
||||||
|
platform: x86
|
||||||
|
bits: 32
|
||||||
|
name: Linux / ${{ matrix.cc }} / ${{ matrix.platform }}
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Get build dependencies and arrange the environment
|
- name: Get build dependencies and arrange the environment
|
||||||
run: |
|
run: |
|
||||||
echo "NOTE: Not exist \"libglew2.1:i386\" for Ubuntu 20.04, therefore x86 build doesn't work"
|
if [[ "${{ matrix.platform }}" == "x86" ]]; then
|
||||||
echo ""
|
echo "NOTE: There is no native \"libglew2.2:i386\" in Ubuntu 22.04, we will FORCE one from Debian..."
|
||||||
|
echo ""
|
||||||
|
sudo dpkg --add-architecture i386
|
||||||
|
fi
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get -y install libgl1-mesa-dev libglew-dev libsdl1.2-dev libsdl2-dev
|
sudo apt-get -y install libgl1-mesa-dev libglew-dev libsdl1.2-dev libsdl2-dev
|
||||||
|
if [[ "${{ matrix.platform }}" == "x86" ]]; then
|
||||||
|
sudo apt-get --reinstall -y install gcc-multilib g++-multilib libc6 libc6-dev-i386 libgl1-mesa-glx:i386 libglu1-mesa:i386 libsdl1.2debian:i386 libsdl2-2.0-0:i386 libx11-6:i386
|
||||||
|
curl -L -o /tmp/libglew2.2_2.2.0-4_i386.deb http://http.us.debian.org/debian/pool/main/g/glew/libglew2.2_2.2.0-4_i386.deb
|
||||||
|
dpkg-deb -x /tmp/libglew2.2_2.2.0-4_i386.deb /tmp/i386/
|
||||||
|
sudo cp -r /tmp/i386/usr/lib/i386-linux-gnu/libGLEW.so.* /usr/lib/i386-linux-gnu/
|
||||||
|
LINK="sudo ln -s -T"
|
||||||
|
cd /usr/lib/i386-linux-gnu
|
||||||
|
if ! [[ -f libGL.so ]]; then ${LINK} libGL.so.1.7.0 libGL.so; fi
|
||||||
|
if ! [[ -f libGLEW.so ]]; then ${LINK} libGLEW.so.2.2.0 libGLEW.so; fi
|
||||||
|
if ! [[ -f libGLU.so ]]; then ${LINK} libGLU.so.1.3.1 libGLU.so; fi
|
||||||
|
if ! [[ -f libSDL.so ]]; then ${LINK} libSDL-1.2.so.0.11.4 libSDL.so; fi
|
||||||
|
if ! [[ -f libSDL2.so ]]; then ${LINK} libSDL2-2.0.so.0.18.2 libSDL2.so; fi
|
||||||
|
if ! [[ -f libX11.so ]]; then ${LINK} libX11.so.6.4.0 libX11.so; fi
|
||||||
|
cd /usr/include/SDL2
|
||||||
|
if ! [[ -f _real_SDL_config.h ]]; then ${LINK} ../x86_64-linux-gnu/SDL2/_real_SDL_config.h _real_SDL_config.h; fi
|
||||||
|
fi
|
||||||
sudo ldconfig
|
sudo ldconfig
|
||||||
- name: Build and related stuff
|
- name: Build and related stuff
|
||||||
run: |
|
run: |
|
||||||
|
if [[ ${{ matrix.bits }} -eq 32 ]]; then export OPTFLAGS="-O2 -flto -mtune=pentium4"; else export OPTFLAGS="-O2 -flto -mtune=core2"; fi
|
||||||
|
G_REV=$(git rev-parse --short HEAD)
|
||||||
|
echo "G_REV=${G_REV}" >> "${GITHUB_ENV}"
|
||||||
|
ORIG="$(pwd)"
|
||||||
if [[ "${{ matrix.cc }}" == "GCC" ]]; then
|
if [[ "${{ matrix.cc }}" == "GCC" ]]; then
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
CXX="g++"
|
CXX="g++"
|
||||||
|
@ -41,22 +74,37 @@ jobs:
|
||||||
CC="clang"
|
CC="clang"
|
||||||
CXX="clang++"
|
CXX="clang++"
|
||||||
fi
|
fi
|
||||||
|
if [[ ${{ matrix.bits }} -eq 32 ]]; then export PIC="1"; fi
|
||||||
${CC} --version
|
${CC} --version
|
||||||
echo ""
|
echo ""
|
||||||
git clone --depth 1 https://github.com/mupen64plus/mupen64plus-core.git ../mupen64plus-core
|
git clone --depth 1 https://github.com/mupen64plus/mupen64plus-core.git ../mupen64plus-core
|
||||||
|
MSG="1.2"
|
||||||
|
mkdir tmp
|
||||||
for SDL in sdl sdl2
|
for SDL in sdl sdl2
|
||||||
do
|
do
|
||||||
if [[ "${SDL}" == "sdl" ]]; then MSG="1.2"; else MSG="2"; fi
|
|
||||||
echo ""
|
echo ""
|
||||||
echo ":: ${{ matrix.cc }} x64 / SDL${MSG} ::"
|
echo ":: ${{ matrix.cc }} ${{ matrix.platform }} / SDL${MSG} ::"
|
||||||
echo ""
|
echo ""
|
||||||
make -C projects/unix clean
|
make -C projects/unix clean
|
||||||
echo ""
|
echo ""
|
||||||
make CC="${CC}" CXX="${CXX}" BITS="64" SDL_CONFIG="${SDL}-config" -C projects/unix all
|
make CC="${CC}" CXX="${CXX}" BITS="${{ matrix.bits }}" SDL_CONFIG="${SDL}-config" -C projects/unix all -j4
|
||||||
echo ""
|
echo ""
|
||||||
ls -gG projects/unix/*.so
|
make -C projects/unix install DESTDIR="${ORIG}/tmp"
|
||||||
ldd projects/unix/mupen64plus-video-z64.so
|
echo ""
|
||||||
|
cd tmp/usr/local/lib/mupen64plus
|
||||||
|
ls -gG *.so
|
||||||
|
ldd mupen64plus-video-z64.so
|
||||||
|
MSG="2"
|
||||||
|
cd "${ORIG}"
|
||||||
done
|
done
|
||||||
|
mkdir pkg
|
||||||
|
if [[ "${CC}" == "gcc" ]]; then tar cvzf pkg/mupen64plus-video-z64-${{ matrix.platform }}-g${G_REV}.tar.gz -C tmp/ "usr"; fi
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: mupen64plus-video-z64-${{ matrix.platform }}-g${{ env.G_REV }}
|
||||||
|
path: pkg/*
|
||||||
|
if-no-files-found: ignore
|
||||||
|
|
||||||
MSYS2:
|
MSYS2:
|
||||||
strategy:
|
strategy:
|
||||||
|
@ -77,13 +125,14 @@ jobs:
|
||||||
run:
|
run:
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: msys2/setup-msys2@v2
|
- uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
msystem: MINGW${{ matrix.bits }}
|
msystem: MINGW${{ matrix.bits }}
|
||||||
update: true
|
update: true
|
||||||
install: >-
|
install: >-
|
||||||
git
|
git
|
||||||
|
libtool
|
||||||
make
|
make
|
||||||
mingw-w64-${{ matrix.cross }}-gcc
|
mingw-w64-${{ matrix.cross }}-gcc
|
||||||
mingw-w64-${{ matrix.cross }}-toolchain
|
mingw-w64-${{ matrix.cross }}-toolchain
|
||||||
|
@ -91,22 +140,26 @@ jobs:
|
||||||
mingw-w64-${{ matrix.cross }}-SDL2
|
mingw-w64-${{ matrix.cross }}-SDL2
|
||||||
- name: Build and related stuff
|
- name: Build and related stuff
|
||||||
run: |
|
run: |
|
||||||
export OPTFLAGS="-O2 -flto"
|
if [[ ${{ matrix.bits }} -eq 32 ]]; then export OPTFLAGS="-O2 -flto -mtune=pentium4"; else export OPTFLAGS="-O2 -flto -mtune=core2"; fi
|
||||||
echo "G_REV=$(git rev-parse --short HEAD)" >> "${GITHUB_ENV}"
|
echo "G_REV=$(git rev-parse --short HEAD)" >> "${GITHUB_ENV}"
|
||||||
|
ORIG="$(pwd)"
|
||||||
CC="gcc"
|
CC="gcc"
|
||||||
CXX="g++"
|
CXX="g++"
|
||||||
${CC} --version
|
${CC} --version
|
||||||
echo ""
|
echo ""
|
||||||
git clone --depth 1 https://github.com/mupen64plus/mupen64plus-core.git ../mupen64plus-core
|
git clone --depth 1 https://github.com/mupen64plus/mupen64plus-core.git ../mupen64plus-core
|
||||||
|
mkdir tmp
|
||||||
echo ""
|
echo ""
|
||||||
echo ":: ${{ matrix.cc }} ${{ matrix.platform }} / SDL2 ::"
|
echo ":: ${{ matrix.cc }} ${{ matrix.platform }} / SDL2 ::"
|
||||||
echo ""
|
echo ""
|
||||||
make -C projects/unix clean
|
make -C projects/unix clean
|
||||||
echo ""
|
echo ""
|
||||||
make CC="${CC}" CXX="${CXX}" BITS="${{ matrix.bits }}" -C projects/unix all
|
make CC="${CC}" CXX="${CXX}" BITS="${{ matrix.bits }}" -C projects/unix all -j4
|
||||||
echo ""
|
echo ""
|
||||||
ls -gG projects/unix/*.dll
|
make -C projects/unix install PLUGINDIR="" SHAREDIR="" BINDIR="" MANDIR="" LIBDIR="" APPSDIR="" ICONSDIR="icons" INCDIR="api" LDCONFIG="true" DESTDIR="${ORIG}/tmp"
|
||||||
ldd projects/unix/mupen64plus-video-z64.dll
|
echo ""
|
||||||
|
ls -gG tmp/*.dll
|
||||||
|
ldd tmp/mupen64plus-video-z64.dll
|
||||||
- name: Copy binaries, dependencies, etc...
|
- name: Copy binaries, dependencies, etc...
|
||||||
run: |
|
run: |
|
||||||
mkdir pkg
|
mkdir pkg
|
||||||
|
@ -116,26 +169,26 @@ jobs:
|
||||||
echo ":: Copying ${LIB}.dll"
|
echo ":: Copying ${LIB}.dll"
|
||||||
cp "/mingw${{ matrix.bits }}/bin/${LIB}.dll" pkg/
|
cp "/mingw${{ matrix.bits }}/bin/${LIB}.dll" pkg/
|
||||||
done
|
done
|
||||||
cd projects/unix/
|
cd tmp
|
||||||
for BIN in *.dll
|
for BIN in *.dll
|
||||||
do
|
do
|
||||||
echo ":: Copying ${BIN}"
|
echo ":: Copying ${BIN}"
|
||||||
cp "${BIN}" ../../pkg/
|
cp "${BIN}" ../pkg/
|
||||||
done
|
done
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: mupen64plus-video-z64-msys2-${{ matrix.platform }}-g${{ env.G_REV }}
|
name: mupen64plus-video-z64-msys2-${{ matrix.platform }}-g${{ env.G_REV }}
|
||||||
path: pkg/*
|
path: pkg/*
|
||||||
|
|
||||||
Nightly-build:
|
Nightly-build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: MSYS2
|
needs: [Linux, MSYS2]
|
||||||
if: github.ref == 'refs/heads/master'
|
if: github.ref == 'refs/heads/master'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- name: Download artifacts
|
- name: Download artifacts
|
||||||
uses: actions/download-artifact@v2
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
path: binaries
|
path: binaries
|
||||||
- name: Get some tools
|
- name: Get some tools
|
||||||
|
@ -148,20 +201,27 @@ jobs:
|
||||||
cd binaries
|
cd binaries
|
||||||
for BIN in *
|
for BIN in *
|
||||||
do
|
do
|
||||||
echo ":: Creating ${BIN}.zip"
|
|
||||||
cd "${BIN}"
|
cd "${BIN}"
|
||||||
zip -r "../../pkg/${BIN}.zip" *
|
if [[ "${BIN:22:4}" == "msys" ]]; then
|
||||||
|
echo ":: Creating ${BIN}.zip"
|
||||||
|
zip -r "../../pkg/${BIN}.zip" *
|
||||||
|
else
|
||||||
|
echo ":: Recovering ${BIN}.tar.gz"
|
||||||
|
mv *.tar.gz ../../pkg/
|
||||||
|
fi
|
||||||
cd ..
|
cd ..
|
||||||
done
|
done
|
||||||
cd ../pkg
|
cd ../pkg
|
||||||
echo ""
|
echo ""
|
||||||
for BIN in *.zip
|
for BIN in *
|
||||||
do
|
do
|
||||||
ls -gG ${BIN}
|
ls -gG ${BIN}
|
||||||
tigerdeep -l ${BIN} >> ${BIN:0:21}.tiger.txt
|
tigerdeep -l ${BIN} >> ../${BIN:0:21}.tiger.txt
|
||||||
sha256sum ${BIN} >> ${BIN:0:21}.sha256.txt
|
sha256sum ${BIN} >> ../${BIN:0:21}.sha256.txt
|
||||||
sha512sum ${BIN} >> ${BIN:0:21}.sha512.txt
|
sha512sum ${BIN} >> ../${BIN:0:21}.sha512.txt
|
||||||
done
|
done
|
||||||
|
mv ../*.tiger.txt .
|
||||||
|
mv ../*.sha*.txt .
|
||||||
echo ""
|
echo ""
|
||||||
echo "TIGER:"
|
echo "TIGER:"
|
||||||
cat *.tiger.txt
|
cat *.tiger.txt
|
||||||
|
|
|
@ -143,7 +143,6 @@ ifeq ($(ARCH_DETECTED), 64BITS_32)
|
||||||
endif
|
endif
|
||||||
ifneq ($(OS), OSX)
|
ifneq ($(OS), OSX)
|
||||||
ifeq ($(OS), MINGW)
|
ifeq ($(OS), MINGW)
|
||||||
CFLAGS += -march=i686
|
|
||||||
LDFLAGS += -Wl,-m,i386pe
|
LDFLAGS += -Wl,-m,i386pe
|
||||||
else
|
else
|
||||||
CFLAGS += -m32
|
CFLAGS += -m32
|
||||||
|
@ -154,7 +153,6 @@ endif
|
||||||
|
|
||||||
ifeq ($(ARCH_DETECTED), 64BITS)
|
ifeq ($(ARCH_DETECTED), 64BITS)
|
||||||
ifeq ($(OS), MINGW)
|
ifeq ($(OS), MINGW)
|
||||||
CFLAGS += -march=x86-64
|
|
||||||
LDFLAGS += -Wl,-m,i386pep
|
LDFLAGS += -Wl,-m,i386pep
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
Loading…
Reference in a new issue