Properly setup Azure Pipelines using current system

Also sets up Azure artifacts (including for PRs) for AppImages
This commit is contained in:
Zion Nimchuk 2020-03-02 18:42:28 -08:00 committed by Ivan
parent 87c8d1800b
commit 0f1fd059fc
4 changed files with 70 additions and 51 deletions

View file

@ -31,5 +31,9 @@ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_LLVM_SUBMODULE=OFF -DUSE_COTIRE=OFF
ninja; build_status=$?; ninja; build_status=$?;
cd .. cd ..
# If it compiled succesfully let's deploy
if [ $build_status -eq 0 ] && [ -n "$GITHUB_TOKEN" ] && [ "$TRAVIS_BRANCH" = "master" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then /bin/bash -ex .travis/deploy-linux.bash ; fi # If it compiled succesfully let's deploy depending on the build pipeline (Travis, Azure Pipelines)
# BUILD_REASON is an Azure Pipeline variable, and we want to deploy when using Azure Pipelines
if [[ $build_status -eq 0 && ( -n "$BUILD_REASON" || ( "$TRAVIS_BRANCH" = "master" && "$TRAVIS_PULL_REQUEST" = false ) ) ]]; then
/bin/bash -ex .travis/deploy-linux.bash
fi

View file

@ -36,18 +36,30 @@ if [ "$DEPLOY_APPIMAGE" = "true" ]; then
COMM_COUNT="$(git rev-list --count HEAD)" COMM_COUNT="$(git rev-list --count HEAD)"
curl -sLO https://github.com/hcorion/uploadtool/raw/master/upload.sh curl -sLO https://github.com/hcorion/uploadtool/raw/master/upload.sh
mv ./RPCS3*.AppImage rpcs3-v${COMM_TAG}-${COMM_COUNT}-${TRAVIS_COMMIT:0:8}_linux64.AppImage if [[ -n "$BUILD_SOURCEVERSION" ]]; then
COMMIT_HASH=$BUILD_SOURCEVERSION
elif [[ -n "$TRAVIS_COMMIT" ]]; then
COMMIT_HASH=$TRAVIS_COMMIT
fi
mv ./RPCS3*.AppImage rpcs3-v${COMM_TAG}-${COMM_COUNT}-${COMMIT_HASH:0:8}_linux64.AppImage
# If we're building using Azure Pipelines, let's copy over the AppImage artifact
if [[ -n "$BUILD_ARTIFACTSTAGINGDIRECTORY" ]]; then
cp ./rpcs3*.AppImage ~/artifacts
fi
FILESIZE=($(stat -c %s ./rpcs3*.AppImage)) FILESIZE=($(stat -c %s ./rpcs3*.AppImage))
SHA256SUM=($(sha256sum ./rpcs3*.AppImage)) SHA256SUM=($(sha256sum ./rpcs3*.AppImage))
if [ -n "$GITHUB_TOKEN" ]; then
unset TRAVIS_REPO_SLUG unset TRAVIS_REPO_SLUG
REPO_SLUG=RPCS3/rpcs3-binaries-linux \ REPO_SLUG=RPCS3/rpcs3-binaries-linux \
UPLOADTOOL_BODY="$SHA256SUM;${FILESIZE}B"\ UPLOADTOOL_BODY="$SHA256SUM;${FILESIZE}B"\
RELEASE_NAME=build-${TRAVIS_COMMIT}\ RELEASE_NAME=build-${TRAVIS_COMMIT}\
RELEASE_TITLE=${COMM_TAG}-${COMM_COUNT}\ RELEASE_TITLE=${COMM_TAG}-${COMM_COUNT}\
REPO_COMMIT=d812f1254a1157c80fd402f94446310560f54e5f\ REPO_COMMIT=d812f1254a1157c80fd402f94446310560f54e5f\
bash upload.sh rpcs3*.AppImage bash upload.sh rpcs3*.AppImage
fi
fi fi
if [ "$DEPLOY_PPA" = "true" ]; then if [ "$DEPLOY_PPA" = "true" ]; then
export DEBFULLNAME="RPCS3 Build Bot" export DEBFULLNAME="RPCS3 Build Bot"

View file

@ -2,6 +2,10 @@
TRAVIS_PULL_REQUEST TRAVIS_PULL_REQUEST
TRAVIS_BRANCH TRAVIS_BRANCH
TRAVIS_COMMIT TRAVIS_COMMIT
# Variables set by Azure Pipelines
BUILD_REASON
BUILD_SOURCEVERSION
BUILD_ARTIFACTSTAGINGDIRECTORY
# Variables for Travis build matrix # Variables for Travis build matrix
COMPILER COMPILER
DEPLOY_APPIMAGE DEPLOY_APPIMAGE

View file

@ -1,41 +1,40 @@
variables:
COMPILER: clang
CCACHE_DIR: $(Pipeline.Workspace)/ccache
trigger: trigger:
- master branches:
include:
pool: - master
vmImage: 'ubuntu-latest' tags:
exclude:
steps: - '*'
- bash: | jobs:
sudo apt-get install ccache -y - job: Linux_Build
echo "##vso[task.prependpath]/usr/lib/ccache" strategy:
displayName: Install ccache and update PATH to use linked versions of gcc, cc, etc matrix:
Clang:
- task: CacheBeta@0 COMPILER: clang
inputs: GCC:
key: ccache | $(Agent.OS) COMPILER: gcc
path: $(CCACHE_DIR) DEPLOY_APPIMAGE: true
displayName: ccache variables:
COMPILER: clang
- bash: | CCACHE_DIR: $(Pipeline.Workspace)/ccache
docker pull rpcs3/rpcs3-travis-trusty:1.1 pool:
docker run \ vmImage: 'ubuntu-latest'
-v $(pwd):/rpcs3 \ steps:
-v $CCACHE_DIR:/root/.ccache \ - task: Cache@0
rpcs3/rpcs3-travis-trusty:1.1 \ inputs:
/bin/bash -ex /rpcs3/.travis/build-linux.bash key: ccache | $(Agent.OS) | $(COMPILER)
displayName: Fetch and build with Docker path: $(CCACHE_DIR)
displayName: Ccache
- task: CopyFiles@2
inputs: - bash: |
sourceFolder: '$(Build.SourcesDirectory)' docker pull --quiet rpcs3/rpcs3-travis-xenial:1.2
contents: 'build/bin/rpcs3' docker run \
TargetFolder: '$(Pipeline.Workspace)/artifacts' -v $(pwd):/rpcs3 \
--env-file .travis/travis.env \
- task: PublishBuildArtifacts@1 -v $CCACHE_DIR:/root/.ccache \
inputs: -v $BUILD_ARTIFACTSTAGINGDIRECTORY:/root/artifacts \
pathtoPublish: '$(Pipeline.Workspace)/artifacts' rpcs3/rpcs3-travis-xenial:1.2 \
artifactName: drop /bin/bash -ex /rpcs3/.travis/build-linux.bash
displayName: Docker setup and build
- publish: $(Build.ArtifactStagingDirectory)