diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..7922874813 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,37 @@ +clone_depth: 5 +version: "{branch}.{build}" + +image: + - Visual Studio 2019 + +environment: + matrix: + - GETH_ARCH: amd64 + GETH_MINGW: 'C:\msys64\mingw64' + - GETH_ARCH: 386 + GETH_MINGW: 'C:\msys64\mingw32' + +install: + - git submodule update --init --depth 1 --recursive + - go version + +for: + # Windows builds for amd64 + 386. + - matrix: + only: + - image: Visual Studio 2019 + environment: + # We use gcc from MSYS2 because it is the most recent compiler version available on + # AppVeyor. Note: gcc.exe only works properly if the corresponding bin/ directory is + # contained in PATH. + GETH_CC: '%GETH_MINGW%\bin\gcc.exe' + PATH: '%GETH_MINGW%\bin;C:\Program Files (x86)\NSIS\;%PATH%' + build_script: + - 'echo %GETH_ARCH%' + - 'echo %GETH_CC%' + - '%GETH_CC% --version' + - go run build/ci.go install -dlgo -arch %GETH_ARCH% -cc %GETH_CC% + after_build: + # Upload builds. Note that ci.go makes this a no-op PR builds. + - go run build/ci.go archive -arch %GETH_ARCH% -type zip -signer WINDOWS_SIGNING_KEY -upload gethstore/builds + - go run build/ci.go nsis -arch %GETH_ARCH% -signer WINDOWS_SIGNING_KEY -upload gethstore/builds diff --git a/internal/build/env.go b/internal/build/env.go index 1c609aab4c..23501d0ece 100644 --- a/internal/build/env.go +++ b/internal/build/env.go @@ -75,6 +75,23 @@ func Env() Environment { IsPullRequest: os.Getenv("TRAVIS_PULL_REQUEST") != "false", IsCronJob: os.Getenv("TRAVIS_EVENT_TYPE") == "cron", } + case os.Getenv("CI") == "True" && os.Getenv("APPVEYOR") == "True": + commit := os.Getenv("APPVEYOR_PULL_REQUEST_HEAD_COMMIT") + if commit == "" { + commit = os.Getenv("APPVEYOR_REPO_COMMIT") + } + return Environment{ + CI: true, + Name: "appveyor", + Repo: os.Getenv("APPVEYOR_REPO_NAME"), + Commit: commit, + Date: getDate(commit), + Branch: os.Getenv("APPVEYOR_REPO_BRANCH"), + Tag: os.Getenv("APPVEYOR_REPO_TAG_NAME"), + Buildnum: os.Getenv("APPVEYOR_BUILD_NUMBER"), + IsPullRequest: os.Getenv("APPVEYOR_PULL_REQUEST_NUMBER") != "", + IsCronJob: os.Getenv("APPVEYOR_SCHEDULED_BUILD") == "True", + } case os.Getenv("CI") == "true" && os.Getenv("GITHUB_ACTIONS") == "true": commit := os.Getenv("GITHUB_SHA") reftype := os.Getenv("GITHUB_REF_TYPE")