website: Add data privacy policy section to the About page #97
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: macOS builds | |
on: | |
push: | |
paths-ignore: | |
- '.clang-format' | |
- '.mdl-styles' | |
- '*.md' | |
- 'docs/**' | |
- 'licenses/**' | |
- 'website/**' | |
pull_request: | |
paths-ignore: | |
- '.clang-format' | |
- '.mdl-styles' | |
- '*.md' | |
- 'docs/**' | |
- 'licenses/**' | |
- 'website/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build_macos: | |
name: ${{ matrix.conf.name }} (${{ matrix.conf.arch }}) | |
runs-on: ${{ matrix.conf.host }} | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
strategy: | |
fail-fast: false | |
matrix: | |
conf: | |
- name: Clang | |
host: macos-12 | |
arch: x86_64 | |
needs_deps: true | |
build_flags: -Denable_debugger=normal | |
brew_path: /usr/local/homebrew | |
max_warnings: 80 | |
- name: Clang | |
host: macos-14 | |
arch: arm64 | |
needs_deps: true | |
build_flags: -Dbuildtype=debug | |
brew_path: /opt/homebrew | |
max_warnings: 60 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: Install C++ compiler and libraries | |
if: matrix.conf.needs_deps | |
run: | | |
arch -arch=${{ matrix.conf.arch }} brew unlink [email protected] || true | |
rm -f /usr/local/bin/openssl || true | |
arch -arch=${{ matrix.conf.arch }} brew install --overwrite openssl@3 || true | |
arch -arch=${{ matrix.conf.arch }} brew link --overwrite openssl@3 || true | |
arch -arch=${{ matrix.conf.arch }} brew install --overwrite \ | |
${{ matrix.conf.packages }} \ | |
$(cat packages/macos-12-brew.txt) || true | |
- name: Cache subprojects | |
id: cache-subprojects | |
uses: actions/cache@v4 | |
with: | |
path: subprojects.tar | |
key: subprojects-${{ hashFiles('subprojects/*.wrap') }}-1 | |
enableCrossOsArchive: true | |
- if: steps.cache-subprojects.outputs.cache-hit != 'true' | |
name: Generate subprojects cache | |
run: scripts/fetch-and-tar-subprojects.sh | |
- name: Extract subprojects cache | |
run: scripts/extract-subprojects-tar.sh | |
- name: Setup and build | |
run: | | |
set -xo pipefail | |
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" | |
eval "$(${{ matrix.conf.brew_path }}/bin/brew shellenv)" | |
./scripts/log-env.sh | |
./scripts/retry_command.sh 3 meson setup ${{ matrix.conf.build_flags }} build | |
meson compile -C build 2>&1 | tee build.log | |
- name: Run tests | |
if: matrix.conf.run_tests | |
run: | | |
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" | |
eval "$(${{ matrix.conf.brew_path }}/bin/brew shellenv)" | |
meson test --num-processes 128 -t 0 -C build --print-errorlogs | |
- name: Summarize warnings | |
if: matrix.conf.run_tests != true | |
env: | |
MAX_WARNINGS: ${{ matrix.conf.max_warnings }} | |
run: python3 ./scripts/count-warnings.py -lf build.log | |
build_macos_release: | |
name: Release build (${{ matrix.runner.arch }}) | |
runs-on: ${{ matrix.runner.host }} | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
env: | |
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.runner.minimum_deployment }} | |
strategy: | |
matrix: | |
runner: | |
- host: macos-12 | |
arch: x86_64 | |
build_flags: -Db_lto=true | |
brew_path: /usr/local/homebrew | |
minimum_deployment: '10.15' | |
needs_deps: true | |
needs_libintl_workaround: false | |
- host: macos-14 | |
arch: arm64 | |
build_flags: -Db_lto=true | |
brew_path: /opt/homebrew | |
minimum_deployment: '11.0' | |
needs_deps: true | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: Install C++ compiler and libraries | |
if: matrix.runner.needs_deps | |
run: | | |
brew install librsvg tree libpng ninja opusfile speexdsp meson python-setuptools | |
- name: Cache subprojects | |
id: cache-subprojects | |
uses: actions/cache@v4 | |
with: | |
path: subprojects.tar | |
key: subprojects-${{ hashFiles('subprojects/*.wrap') }}-1 | |
enableCrossOsArchive: true | |
- if: steps.cache-subprojects.outputs.cache-hit != 'true' | |
name: Generate subprojects cache | |
run: scripts/fetch-and-tar-subprojects.sh | |
- name: Extract subprojects cache | |
run: scripts/extract-subprojects-tar.sh | |
- name: Log environment | |
run: arch -arch=${{ matrix.runner.arch }} ./scripts/log-env.sh | |
- name: Inject version string | |
run: | | |
set -x | |
git fetch --prune --unshallow | |
git fetch --all --tags --force | |
export VERSION=$(git describe --abbrev=5) | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Setup and build release | |
run: | | |
set -x | |
eval "$(${{ matrix.runner.brew_path }}/bin/brew shellenv)" | |
meson setup \ | |
${{ matrix.runner.build_flags }} \ | |
-Ddefault_library=static \ | |
-Dwrap_mode=forcefallback \ | |
-Dtry_static_libs=sdl2,sdl2_net \ | |
-Duse_zlib_ng=sse2,ssse3,neon \ | |
build | |
meson compile -C build | |
- name: Upload binary | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dosbox-${{ matrix.runner.arch }} | |
path: build/dosbox | |
overwrite: true | |
- name: Upload resources | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Resources | |
path: Resources | |
overwrite: true | |
publish_universal_build: | |
name: Publish universal build | |
needs: build_macos_release | |
runs-on: macos-14 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: Inject version string | |
run: | | |
set -x | |
git fetch --prune --unshallow | |
git fetch --all --tags --force | |
export VERSION=$(git describe --abbrev=5) | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Install brew depedencies | |
run: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install --overwrite librsvg | |
- name: Download binaries | |
uses: actions/download-artifact@v4 | |
- name: Package | |
run: | | |
mv Resources ../ | |
./scripts/create-package.sh \ | |
-p macos \ | |
-v "${{ env.VERSION }}" \ | |
-f \ | |
"$(pwd)" \ | |
"$(pwd)" | |
- name: Create dmg | |
run: | | |
ln -s /Applications dist/ | |
codesign -s "-" "dist/DOSBox Staging.app" --force --deep -v | |
hdiutil create \ | |
-volname "DOSBox Staging" \ | |
-srcfolder dist \ | |
-ov -format UDZO "dosbox-staging-macOS-${{ env.VERSION }}.dmg" | |
- name: Upload disk image | |
uses: actions/upload-artifact@v4 | |
# GitHub automatically zips the artifacts, and there's no option | |
# to skip it or upload a file only. | |
with: | |
name: dosbox-staging-macOS-universal | |
path: dosbox-staging-macOS-${{ env.VERSION }}.dmg | |
overwrite: true | |
# This job exists only to publish an artifact with version info when building | |
# from main branch, so snapshot build version will be visible on: | |
# https://dosbox-staging.github.io/downloads/devel/ | |
# | |
publish_additional_artifacts: | |
name: Publish additional artifacts | |
needs: build_macos_release | |
runs-on: macos-14 | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: false | |
- name: Generate changelog | |
run: | | |
set +x | |
git fetch --unshallow | |
git fetch --all --tags --force | |
VERSION=$(git describe --abbrev=4) | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
NEWEST_TAG=$(git describe --abbrev=0) | |
git log "$NEWEST_TAG..HEAD" > changelog-$VERSION.txt | |
- uses: actions/upload-artifact@v4 | |
with: | |
# Keep exactly this artifact name; it's being used to propagate | |
# version info via GitHub REST API | |
name: changelog-${{ env.VERSION }}.txt | |
path: changelog-${{ env.VERSION }}.txt | |
overwrite: true |