1
0
mirror of https://github.com/simh/simh.git synced 2026-01-26 20:12:23 +00:00
Files
simh.simh/appveyor.yml
Mark Pizzolato 3dcb689845 APPVEYOR: Avoid pushing build results when processing PRs.
- Only update simh/Development-Binaries on direct commits to the repo or
  when PRs are actually merged.
- Add git lfs support to store 50+MB .tgz and .zip files.
  Including maintaining Development-Binaries in the Appveyor cache
2023-08-25 16:42:07 -10:00

117 lines
4.6 KiB
YAML

image:
- macos-bigsur
- Ubuntu1604
- Visual Studio 2015
platform:
- x86
environment:
access_token:
secure: Me2UWjTL1G91AfTT9ruasivTMxtSO0SZbv3wIFRS2RygMiZhU8r9sSQ3a9QB7h70wnl2W2Cv8o1v0Z2hONpltyxKxlSP4OqXeIIIx0ssRMgg8rkm2qlDWcCzZur3tM4v
matrix:
fast_finish: true
cache:
- ../windows-build
- ../Development-Binaries
skip_commits:
files:
- doc/*
- '**/*.md'
- '**/*.txt'
before_build:
- ps: |
$platform = uname -s
if ($platform -eq 'Linux') {
sudo apt-get update -yqqm
sudo apt-get install -ym gcc libpcap-dev libvdeplug-dev libpcre3-dev libedit-dev libsdl2-dev libpng-dev libsdl2-ttf-dev git-lfs
} else {
if ($platform -eq 'Darwin') {
brew install vde pcre libedit sdl2 libpng zlib sdl2_ttf make git-lfs
}
}
git lfs install
build_script:
- cmd: |
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
echo Building with %NUMBER_OF_PROCESSORS% processors
cd "Visual Studio Projects" & vcbuild /M%NUMBER_OF_PROCESSORS% /useenv /rebuild simh.sln "Release|Win32" & cd ..
- ps: |
if ($isWindows) {
$platform = 'Windows'
$arch = 'Win32'
$commit_id_file = 'Visual Studio Projects\.git-commit-id.h'
} else {
$platform = uname -s
$arch = arch
if ($platform -eq 'Linux') {
$ncpus = nproc
$parallel = '-j' + $ncpus
Write-Host "Building with $ncpus processors"
} else {
$platform = 'macOS'
}
$commit_id_file = '.git-commit-id'
make QUIET=1 $parallel
}
on_success:
- ps: |
$id_line = Select-String -Path $commit_id_file -Pattern 'SIM_GIT_COMMIT_ID'
$id = $id_line.Line.SubString($id_line.line.IndexOf("SIM_GIT_COMMIT_ID") + 18, 8)
$datetime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
$version_major = (Select-String -Path 'sim_rev.h' -Pattern '#define\s+SIM_MAJOR\s+(\d+)').Matches.Groups[1].Value
$version_minor = (Select-String -Path 'sim_rev.h' -Pattern '#define\s+SIM_MINOR\s+(\d+)').Matches.Groups[1].Value
$version_mode = (Select-String -Path 'sim_rev.h' -Pattern '#define\s+SIM_VERSION_MODE\s+"(.+?)"').Matches.Groups[1].Value
- git config --global credential.helper store
- ps: Set-Content -Path "$HOME\.git-credentials" -Value "https://$($env:access_token):x-oauth-basic@github.com`n" -NoNewline
- git config --global credential.helper store
- git config --global user.email "mark@infocomm.com"
- git config --global user.name "Mark Pizzolato"
- git config --global core.autocrlf false
- ps: |
if (Test-Path -Path ../Development-Binaries -PathType Container) {
pushd ../Development-Binaries
git pull
} else {
pushd ..
git clone -q "https://github.com/simh/Development-Binaries"
}
popd
cd ../Development-Binaries
$pkg_filename = "simh-$datetime-$platform-$arch-$version_major.$version_minor-$version_mode-$id"
if ($isWindows) {
$pkg_filename = $pkg_filename + '.zip'
Compress-Archive -Path $env:APPVEYOR_BUILD_FOLDER\BIN\NT\Win32-Release\*.exe -DestinationPath "$pkg_filename"
} else {
$pkg_filename = $pkg_filename + '.tgz'
pushd $env:APPVEYOR_BUILD_FOLDER/BIN
tar -cvzf ../../Development-Binaries/$pkg_filename --exclude=buildtools '--exclude=*-build' *
popd
}
"$platform Build results for simh Commit: https://github.com/simh/simh/commit/$id" | Out-File -FilePath ../pkg_commit_message -Encoding Ascii
(Get-Content README.md) -replace ('(\['+$platform+' is here\]\(https\:\/\/github\.com\/simh\/Development-Binaries\/blob\/master\/)([a-zA-Z0-9._-]+)(.+\.)'),('$1'+$pkg_filename+'$3') | Out-File -FilePath README.md -Encoding Ascii
- ps: |
if ("$env:APPVEYOR_PULL_REQUEST_NUMBER" -eq "") {
# Only update the https://github.com/simh/DevelopmentBinaries repository
# during CI/CD processing of direct commits pushed to the
# https://github.com/simh/simh repository
git add *
git commit -F ../pkg_commit_message
git push -u origin master
} else {
# clean up the un-committed pieces so the cache is maintained correctly
git reset --hard
}
notifications:
- provider: Email
to:
- Mark@infocomm.com
on_build_success: false