From b03e7bf28f75636a4f69176c91911687c755b483 Mon Sep 17 00:00:00 2001 From: James Rowe Date: Sat, 19 Nov 2016 13:11:49 -0700 Subject: [PATCH] Add deploy to bintray for builds to master --- .gitignore | 2 + .travis-upload.sh | 10 +++-- .travis.descriptor.json.in | 23 ++++++++++++ .travis.yml | 20 +++++----- CMakeLists.txt | 5 +++ appveyor.yml | 77 +++++++++++++++++++------------------- 6 files changed, 85 insertions(+), 52 deletions(-) create mode 100644 .travis.descriptor.json.in diff --git a/.gitignore b/.gitignore index ad8aea5da..ec74b0fa4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,10 +4,12 @@ doc-build/ # Generated source files src/common/scm_rev.cpp +.travis.descriptor.json # Project/editor files *.swp .idea/ +.vscode/ # *nix related # Common convention for backup or temporary files diff --git a/.travis-upload.sh b/.travis-upload.sh index 2eeda4c50..9aed815d4 100755 --- a/.travis-upload.sh +++ b/.travis-upload.sh @@ -1,17 +1,16 @@ if [ "$TRAVIS_EVENT_TYPE" = "push" ]&&[ "$TRAVIS_BRANCH" = "master" ]; then GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" GITREV="`git show -s --format='%h'`" + mkdir -p artifacts if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then - REV_NAME="citra-${GITDATE}-${GITREV}-linux-amd64" - UPLOAD_DIR="/citra/nightly/linux-amd64" + REV_NAME="citra-linux-${GITDATE}-${GITREV}" mkdir "$REV_NAME" cp build/src/citra/citra "$REV_NAME" cp build/src/citra_qt/citra-qt "$REV_NAME" elif [ "$TRAVIS_OS_NAME" = "osx" ]; then - REV_NAME="citra-${GITDATE}-${GITREV}-osx-amd64" - UPLOAD_DIR="/citra/nightly/osx-amd64" + REV_NAME="citra-osx-${GITDATE}-${GITREV}" mkdir "$REV_NAME" cp build/src/citra/Release/citra "$REV_NAME" @@ -121,4 +120,7 @@ EOL ARCHIVE_NAME="${REV_NAME}.tar.xz" tar -cJvf "$ARCHIVE_NAME" "$REV_NAME" + + # move the compiled archive into the artifacts directory to be uploaded by travis releases + mv "$ARCHIVE_NAME" artifacts/ fi diff --git a/.travis.descriptor.json.in b/.travis.descriptor.json.in new file mode 100644 index 000000000..c0ea7dcc1 --- /dev/null +++ b/.travis.descriptor.json.in @@ -0,0 +1,23 @@ +{ + "package": { + "name": "nightly", + "repo": "citra", + "subject": "citra-emu", + "desc": "Build created on @BUILD_DATE@", + "website_url": "www.citra-emu.org", + "public_download_numbers": false, + "public_stats": false + }, + "version": { + "name": "nightly", + "released": "@BUILD_DATE@", + "gpgSign": false + }, + "files": [ + { + "includePattern": "artifacts/(.*\\.tar.xz)", + "uploadPattern": "$1" + } + ], + "publish": true +} diff --git a/.travis.yml b/.travis.yml index cc34e039c..8b43d6439 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,4 @@ language: cpp - matrix: include: - os: linux @@ -9,10 +8,6 @@ matrix: sudo: false osx_image: xcode7.3 -env: - global: - - secure: "AXHFIafTmbGDsHD3mUVj5a4I397DQjti/WoqAJGUp2PglxTcc04BwxZ9Z+xLuf5N2Hs5r9ojAJLT8OGxJCLBDXzneQTNSqXbFuYSLbqrEAiIRlA9eRIotWCg+wYcO+5e8MKX+cHVKwiIWasUB21AtCdq6msh6Y3pUshZp212VPg=" - addons: apt: sources: @@ -27,8 +22,15 @@ addons: cache: directories: - - $HOME/.local + - "$HOME/.local" -install: ./.travis-deps.sh -script: ./.travis-build.sh -after_success: ./.travis-upload.sh +install: "./.travis-deps.sh" +script: "./.travis-build.sh" +after_success: "./.travis-upload.sh" + +deploy: + provider: bintray + file: "${HOME}/build/${TRAVIS_REPO_SLUG}/.travis.descriptor.json" + user: citra-emu + key: + secure: "MADIMRKlcr+O2iCmavkbIvUWexopOhnzXuDHKXfGyGY93Im8NCTrbb3tDoLH+bRYQrjNCeaV36ffhpDULU+eH11L4yF5/KY4modEKW4sq3cnAJkm5DUOc/sujlRCwzfjg6NFZGhjxfSlt0ltKRdCKEB/j1vR2GD7d/eQ4diJukQ=" \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 52a1fd492..e232d99a4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -253,6 +253,11 @@ get_git_head_revision(GIT_REF_SPEC GIT_REV) git_describe(GIT_DESC --always --long --dirty) git_branch_name(GIT_BRANCH) +# configure the bintray travis release json +string(TIMESTAMP BUILD_DATE "%Y-%m-%d") +configure_file("${CMAKE_SOURCE_DIR}/.travis.descriptor.json.in" "${CMAKE_SOURCE_DIR}/.travis.descriptor.json" @ONLY) +unset(BUILD_DATE) + set(INI_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/externals/inih") include_directories(${INI_PREFIX}) add_subdirectory(${INI_PREFIX}) diff --git a/appveyor.yml b/appveyor.yml index 0ffb680ff..76362bcf2 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,9 +1,8 @@ # shallow clone -clone_depth: 5 +clone_depth: 10 -environment: - BUILD_PASSWORD: - secure: EXGNlWKJsCtbeImEJ5EP9qrxZ+EqUFfNy+CP61nDOMA= +# don't build on tag +skip_tags: true cache: - C:\ProgramData\chocolatey\bin -> appveyor.yml @@ -30,42 +29,42 @@ build: project: build/citra.sln parallel: true +after_build: + - ps: | + $GITDATE = $(git show -s --date=short --format='%ad') -replace "-","" + $GITREV = $(git show -s --format='%h') + # Where are these spaces coming from? Regardless, let's remove them + $MSVC_BUILD_NAME = "citra-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", "" + $MSVC_BUILD_PDB = "citra-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", "" + + # set the build names as env vars so the artifacts can upload them + $env:MSVC_BUILD_NAME = $MSVC_BUILD_NAME + $env:MSVC_BUILD_PDB = $MSVC_BUILD_PDB + + 7z a -tzip $MSVC_BUILD_PDB .\build\bin\release\*.pdb + rm .\build\bin\release\*.pdb + 7z a -tzip $MSVC_BUILD_NAME .\build\bin\release\* .\license.txt .\README.md + test_script: - cd build && ctest -VV -C Release && cd .. -on_success: - # copying the needed QT Dlls is now done post build. See the CMakeLists.txt file in the citra-qt folder - - ps: > - if (!"$env:APPVEYOR_PULL_REQUEST_TITLE" -and ("$env:APPVEYOR_REPO_BRANCH" -eq "master")) - { - $GITDATE = $(git show -s --date=short --format='%ad') -replace "-","" - $GITREV = $(git show -s --format='%h') - # Where are these spaces coming from? Regardless, let's remove them - $BUILD_NAME = "citra-${GITDATE}-${GITREV}-windows-amd64.7z" -replace " ","" - $BUILD_NAME_PDB = "citra-${GITDATE}-${GITREV}-windows-amd64-debugsymbols.7z" -replace " ","" - $BUILD_NAME_NOQT = "citra-noqt-${GITDATE}-${GITREV}-windows-amd64.7z" -replace " ","" +artifacts: + - path: $(MSVC_BUILD_NAME) + name: msvcbuild + type: zip + - path: $(MSVC_BUILD_PDB) + name: msvcdebug + type: zip - # Remove unnecessary files - rm .\build\bin\release\*tests* - - # Put the pdb files in a separate archive and remove them from the main download - 7z a $BUILD_NAME_PDB .\build\bin\release\*.pdb - rm .\build\bin\release\*.pdb - - # Zip up the build folder and documentation - 7z a $BUILD_NAME .\build\bin\release\* .\license.txt .\README.md - # Do a second archive with only the binaries (excludes dlls) and documentation - 7z a $BUILD_NAME_NOQT .\build\bin\release\*.exe .\license.txt .\README.md - - - # Download WinSCP and upload to server - choco install winscp.portable - WinSCP.exe /command ` - "option batch abort" ` - "option confirm off" ` - "open sftp://citra-builds:${env:BUILD_PASSWORD}@builds.citra-emu.org -hostkey=*" ` - "put $BUILD_NAME /citra/nightly/windows-amd64/" ` - "put $BUILD_NAME_NOQT /citra/nightly/windows-noqt-amd64/" ` - "put $BUILD_NAME_PDB /citra/nightly/windows-amd64-debugsymbols/" ` - "exit" - } +deploy: +- provider: BinTray + username: citra-emu + api_key: + secure: qaZZfXp5Vv9xw5EmCxKLhGnNYhiNMDCdP84l0+h6HetfmvFlvHxyohWEVokLjl7d + subject: citra-emu + repo: citra + package: nightly + version: nightly + publish: true + on: + branch: master