1
0
mirror of https://github.com/simh/simh.git synced 2026-01-11 23:52:58 +00:00
simh.simh/appveyor.yml

153 lines
7.0 KiB
YAML

image:
- macos-bigsur
- Ubuntu1604
- Visual Studio 2015
platform:
- x86
environment:
access_token:
secure: Me2UWjTL1G91AfTT9ruasivTMxtSO0SZbv3wIFRS2RygMiZhU8r9sSQ3a9QB7h70wnl2W2Cv8o1v0Z2hONpltyxKxlSP4OqXeIIIx0ssRMgg8rkm2qlDWcCzZur3tM4v
matrix:
fast_finish: true
cache:
- ../windows-build
skip_commits:
files:
- doc/*
- '**/*.md'
- '**/*.txt'
before_build:
- ps: |
Write-Output "Building repo '$env:APPVEYOR_REPO_NAME' branch: $env:APPVEYOR_REPO_BRANCH"
$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
} else {
if ($platform -eq 'Darwin') {
$env:HOMEBREW_NO_AUTO_UPDATE=1; brew install 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
# Linux & macOS use the shell to address this, Windows uses cmd. Powershell on Windows doesn't like git output to stderr
# - sh: |
# if test -d ../Development-Binaries
# then
# pushd ../Development-Binaries
# git pull origin master
# popd
# else
# pushd ..
# git clone -q "https://github.com/simh/Development-Binaries" Development-Binaries
# popd
# fi
# - cmd: |
# if NOT EXIST ..\Development-Binaries pushd .. & git clone -q "https://github.com/simh/Development-Binaries" Development-Binaries & popd
# pushd ..\Development-Binaries & git pull origin master & popd
# - ps: |
# 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=NT '--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
# $recent_saved_commit = git log -1 --grep="$platform Build" --pretty=format:%H
# $recent_saved_commit_time = git log -1 --pretty="%at" $recent_saved_commit
# $oneweek=$((60 * 60 * 24 * 7))
# # 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 (i.e. don't update the
# # DevelopmentBinaries when CI/CD actions are being done on external
# # pull requests.
# # Additionally, only update the https://github.com/simh/DevelopmentBinaries
# # repository if the current build for this platform is one week or more
# # from the last saved build for this platform in the repository
# if (((Get-Date -UFormat %s) -gt $recent_saved_commit_time + $oneweek) -and
# ("$env:APPVEYOR_PULL_REQUEST_NUMBER" -eq "") -and 0) {
# ("$platform Build") | Out-File -FilePath ../Save-Build-Results
# }
# Write-Output "Building repo '$env:APPVEYOR_REPO_NAME' branch: $env:APPVEYOR_REPO_BRANCH"
# if ("$env:APPVEYOR_PULL_REQUEST_NUMBER" -ne "") {
# Write-Output "Skipping Saving binaries for pull request $env:APPVEYOR_PULL_REQUEST_NUMBER CI build"
# } else {
# if ((Get-Date -UFormat %s) -lt $recent_saved_commit_time + $oneweek) {
# Write-Output "Skipping Saving binaries since the last one was saved " + (([System.DateTimeOffset]::FromUnixTimeSeconds($recent_saved_commit_time)).DateTime).ToString()
# }
# }
# # Linux & macOS use the shell to perform git activities.
# # Windows uses cmd. Poweshell on Windows doesn't like git output to stderr
# - sh: |
# if [ -f ../Save-Build-Results ]
# then
# 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
# fi
# - cmd: |
# if EXIST ..\Save-Build-Results git add *
# if EXIST ..\Save-Build-Results git commit -F ../pkg_commit_message
# if EXIST ..\Save-Build-Results git push -u origin master
# rem clean up the un-committed pieces so the cache is maintained correctly
# if NOT EXIST ..\Save-Build-Results git reset --hard
notifications:
- provider: Email
to:
- Mark@infocomm.com
on_build_success: false