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