ci: Add Ubuntu build tarball

This commit is contained in:
Matt Borgerson 2020-05-25 12:54:51 -07:00 committed by mborgerson
parent 87e8c4b495
commit 04f8a04259
3 changed files with 63 additions and 9 deletions

View File

@ -38,6 +38,9 @@ jobs:
print('::set-env name=ARTIFACT_NAME::xemu-win-release.zip') print('::set-env name=ARTIFACT_NAME::xemu-win-release.zip')
- name: Clone Tree - name: Clone Tree
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Clone Tree (Unshallow)
run: |
git fetch --prune --unshallow --tags
- name: Install Dependencies - name: Install Dependencies
run: | run: |
echo "Downloading MSYS2 environment..." echo "Downloading MSYS2 environment..."
@ -86,13 +89,16 @@ jobs:
if "${{ matrix.configuration }}" == "Debug": if "${{ matrix.configuration }}" == "Debug":
print('Configuring for Debug') print('Configuring for Debug')
print('::set-env name=BUILD_PARAM::--debug') print('::set-env name=BUILD_PARAM::--debug')
print('::set-env name=ARTIFACT_NAME::xemu-ubuntu-debug') print('::set-env name=ARTIFACT_NAME::xemu-ubuntu-debug.tgz')
else: else:
print('Configuring for Release') print('Configuring for Release')
print('::set-env name=BUILD_PARAM::') print('::set-env name=BUILD_PARAM::')
print('::set-env name=ARTIFACT_NAME::xemu-ubuntu-release') print('::set-env name=ARTIFACT_NAME::xemu-ubuntu-release.tgz')
- name: Clone Tree - name: Clone Tree
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Clone Tree (Unshallow)
run: |
git fetch --prune --unshallow --tags
- name: Install Dependencies - name: Install Dependencies
run: | run: |
sudo apt-get update sudo apt-get update
@ -117,6 +123,12 @@ jobs:
./build.sh ${{ env.BUILD_PARAM }} ./build.sh ${{ env.BUILD_PARAM }}
echo -e "\nCompiler Cache Stats:" echo -e "\nCompiler Cache Stats:"
ccache -s -c ccache -s -c
tar -czvf ${{env.ARTIFACT_NAME}} --transform "s#^dist#xemu#" dist
- name: Upload Build Artifact
uses: actions/upload-artifact@v1
with:
name: dist
path: ${{env.ARTIFACT_NAME}}
macOS: macOS:
runs-on: macOS-latest runs-on: macOS-latest
@ -138,6 +150,9 @@ jobs:
print('::set-env name=ARTIFACT_NAME::xemu-macos-release.zip') print('::set-env name=ARTIFACT_NAME::xemu-macos-release.zip')
- name: Clone Tree - name: Clone Tree
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Clone Tree (Unshallow)
run: |
git fetch --prune --unshallow --tags
- name: Install Dependencies - name: Install Dependencies
run: | run: |
brew update brew update
@ -242,3 +257,25 @@ jobs:
asset_name: xemu-macos-debug.zip asset_name: xemu-macos-debug.zip
asset_path: dist/xemu-macos-debug.zip asset_path: dist/xemu-macos-debug.zip
asset_content_type: application/zip asset_content_type: application/zip
- name: Upload Release Assets (Ubuntu Release Build)
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
id: upload-release-asset-ubuntu-release
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_name: xemu-ubuntu-release.tgz
asset_path: dist/xemu-ubuntu-release.tgz
asset_content_type: application/gzip
- name: Upload Release Assets (Ubuntu Debug Build)
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
id: upload-release-asset-ubuntu-debug
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_name: xemu-ubuntu-debug.tgz
asset_path: dist/xemu-ubuntu-debug.tgz
asset_content_type: application/gzip

View File

@ -3,7 +3,8 @@
set -e # exit if a command fails set -e # exit if a command fails
set -o pipefail # Will return the exit status of make if it fails set -o pipefail # Will return the exit status of make if it fails
package_windows() { # Script to prepare the windows exe package_windows() {
rm -rf dist
mkdir -p dist mkdir -p dist
cp i386-softmmu/qemu-system-i386.exe dist/xemu.exe cp i386-softmmu/qemu-system-i386.exe dist/xemu.exe
cp i386-softmmu/qemu-system-i386w.exe dist/xemuw.exe cp i386-softmmu/qemu-system-i386w.exe dist/xemuw.exe
@ -77,13 +78,19 @@ package_macos() {
EOF EOF
} }
package_linux() {
rm -rf dist
mkdir -p dist
cp i386-softmmu/qemu-system-i386 dist/xemu
cp -r data dist
}
postbuild='' postbuild=''
debug_opts='' debug_opts=''
user_opts=''
build_cflags='-O3' build_cflags='-O3'
job_count='12' job_count='12'
while [ ! -z ${1} ] while [ ! -z "${1}" ]
do do
case "${1}" in case "${1}" in
'-j'*) '-j'*)
@ -96,8 +103,7 @@ do
shift shift
;; ;;
*) *)
user_opts="${user_opts} ${1}" break
shift
;; ;;
esac esac
done done
@ -107,8 +113,9 @@ readlink=$(command -v readlink)
case "$(uname -s)" in # Adjust compilation options based on platform case "$(uname -s)" in # Adjust compilation options based on platform
Linux) Linux)
echo 'Compiling for Linux...' echo 'Compiling for Linux...'
sys_cflags='-march=native -Wno-error=redundant-decls -Wno-error=unused-but-set-variable' sys_cflags='-Wno-error=redundant-decls -Wno-error=unused-but-set-variable'
sys_opts='--enable-kvm --disable-xen --disable-werror' sys_opts='--enable-kvm --disable-xen --disable-werror'
postbuild='package_linux'
;; ;;
Darwin) Darwin)
echo 'Compiling for MacOS...' echo 'Compiling for MacOS...'
@ -206,7 +213,7 @@ set -x # Print commands from now on
--without-default-devices \ --without-default-devices \
--disable-blobs \ --disable-blobs \
--disable-slirp \ --disable-slirp \
${user_opts} "$@"
time make -j"${job_count}" 2>&1 | tee build.log time make -j"${job_count}" 2>&1 | tee build.log

View File

@ -66,6 +66,16 @@ const char *xemu_get_resource_path(const char *filename)
return resource_path; return resource_path;
} }
#if defined(__linux__)
// /usr/share/xemu/data when installed
snprintf(resource_path, resource_path_buffer_len, "/usr/share/xemu/data/%s",
filename);
if (path_exists(resource_path)) {
return resource_path;
}
#endif
// Path not found or file not readable // Path not found or file not readable
assert(0); assert(0);
return NULL; return NULL;