From b14b18e4be45a3fd8a9f8b794d9f95012dc7d2b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20L?= Date: Sun, 17 Mar 2019 14:45:41 +0100 Subject: [PATCH] ci(macos): setup Azure Pipelines --- .travis.yml | 22 ---------------------- CI/install-build-obs-macos.sh | 6 ++++++ CI/install-dependencies-macos.sh | 6 +++--- CI/package-macos.sh | 9 +++------ azure-pipelines.yml | 20 ++++++++++++++++++++ 5 files changed, 32 insertions(+), 31 deletions(-) create mode 100644 azure-pipelines.yml diff --git a/.travis.yml b/.travis.yml index a8a74aa1..8e712fbb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,16 +32,6 @@ matrix: after_success: - docker exec -it xenial /root/obs-websocket/CI/package-xenial.sh - - os: osx - env: _macos_build - osx_image: xcode9.4 - before_install: - - "./CI/install-dependencies-macos.sh" - - "./CI/install-build-obs-macos.sh" - script: "./CI/build-macos.sh" - after_success: - - ./CI/package-macos.sh - deploy: - provider: s3 region: eu-central-1 @@ -57,15 +47,3 @@ deploy: - "$TRAVIS_OS_NAME = linux" - "-d /home/travis/package" all_branches: true -- provider: s3 - region: eu-central-1 - bucket: obs-websocket-osx-builds - access_key_id: "$AWS_ID" - secret_access_key: "$AWS_SECRET" - local_dir: release - skip_cleanup: true - acl: public_read - on: - repo: Palakis/obs-websocket - condition: "$TRAVIS_OS_NAME = osx" - all_branches: true diff --git a/CI/install-build-obs-macos.sh b/CI/install-build-obs-macos.sh index 6a33d9b4..351ce239 100755 --- a/CI/install-build-obs-macos.sh +++ b/CI/install-build-obs-macos.sh @@ -20,6 +20,10 @@ if [ "${HAS_GIT}" = "" ]; then exit 1 fi +echo "[obs-websocket] Downloading and unpacking OBS dependencies" +wget --quiet --retry-connrefused --waitretry=1 https://obs-nightly.s3.amazonaws.com/osx-deps-2018-08-09.tar.gz +tar -xf ./osx-deps-2018-08-09.tar.gz -C /tmp + # Build obs-studio cd .. echo "[obs-websocket] Cloning obs-studio from GitHub.." @@ -30,6 +34,8 @@ git checkout $OBSLatestTag mkdir build && cd build echo "[obs-websocket] Building obs-studio.." cmake .. \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 \ -DDISABLE_PLUGINS=true \ + -DDepsPath=/tmp/obsdeps \ -DCMAKE_PREFIX_PATH=/usr/local/opt/qt/lib/cmake \ && make -j4 diff --git a/CI/install-dependencies-macos.sh b/CI/install-dependencies-macos.sh index 44a1e4b5..2761c419 100755 --- a/CI/install-dependencies-macos.sh +++ b/CI/install-dependencies-macos.sh @@ -19,7 +19,7 @@ echo "[obs-websocket] Updating Homebrew.." brew update >/dev/null echo "[obs-websocket] Checking installed Homebrew formulas.." BREW_PACKAGES=$(brew list) -BREW_DEPENDENCIES="ffmpeg libav cmake" +BREW_DEPENDENCIES="jack speexdsp ccache swig mbedtls" for DEPENDENCY in ${BREW_DEPENDENCIES}; do if echo "${BREW_PACKAGES}" | grep -q "^${DEPENDENCY}\$"; then @@ -39,7 +39,7 @@ echo "[obs-websocket] Installing obs-websocket dependency 'QT 5.10.1'.." # Pouring from the bottle is much quicker though, so use bottle for now. # =!= NOTICE =!= -brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9a70413d137839de0054571e5f85fd07ee400955/Formula/qt.rb +brew install brew install https://gist.githubusercontent.com/DDRBoxman/b3956fab6073335a4bf151db0dcbd4ad/raw/ed1342a8a86793ea8c10d8b4d712a654da121ace/qt.rb # Pin this version of QT5 to avoid `brew upgrade` # upgrading it to incompatible version @@ -56,4 +56,4 @@ if [ "${HAS_PACKAGES}" = "" ]; then echo "[obs-websocket] Installing Packaging app (might require password due to 'sudo').." curl -o './Packages.pkg' --retry-connrefused -s --retry-delay 1 'https://s3-us-west-2.amazonaws.com/obs-nightly/Packages.pkg' sudo installer -pkg ./Packages.pkg -target / -fi \ No newline at end of file +fi diff --git a/CI/package-macos.sh b/CI/package-macos.sh index 7fc2e59b..5411ad2d 100755 --- a/CI/package-macos.sh +++ b/CI/package-macos.sh @@ -13,13 +13,10 @@ echo "[obs-websocket] Preparing package build" export QT_CELLAR_PREFIX="$(/usr/bin/find /usr/local/Cellar/qt -d 1 | sort -t '.' -k 1,1n -k 2,2n -k 3,3n | tail -n 1)" export GIT_HASH=$(git rev-parse --short HEAD) +export GIT_BRANCH_OR_TAG=$(git name-rev --name-only HEAD | awk -F/ '{print $NF}') -export VERSION="$GIT_HASH-$TRAVIS_BRANCH" -export LATEST_VERSION="$TRAVIS_BRANCH" -if [ -n "${TRAVIS_TAG}" ]; then - export VERSION="$TRAVIS_TAG" - export LATEST_VERSION="$TRAVIS_TAG" -fi +export VERSION="$GIT_HASH-$GIT_BRANCH_OR_TAG" +export LATEST_VERSION="$GIT_BRANCH_OR_TAG" export FILENAME="obs-websocket-$VERSION.pkg" export LATEST_FILENAME="obs-websocket-latest-$LATEST_VERSION.pkg" diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 00000000..6e318056 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,20 @@ +pool: + vmImage: 'macOS-10.13' + +steps: +- script: ./CI/install-dependencies-macos.sh + displayName: 'Install Dependencies' + +- script: ./CI/install-build-obs-macos.sh + displayName: 'Build OBS' + +- script: ./CI/build-macos.sh + displayName: 'Build obs-websocket' + +- script: ./CI/package-macos.sh + displayName: 'Package' + +- task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: './package' + artifactName: 'build'