1
0
Fork 0
mirror of https://github.com/icewind1991/clipboard-sync synced 2026-06-03 18:34:07 +02:00

add ci setup

This commit is contained in:
Robin Appelman 2018-07-30 19:01:26 +02:00
commit da2035c1d6
6 changed files with 92 additions and 0 deletions

33
.travis.yml Normal file
View file

@ -0,0 +1,33 @@
language: rust
dist: trusty
sudo: required
services:
- docker
install:
- docker pull ekidd/rust-musl-builder:latest
script:
- cargo build
- "./build_static.sh server"
after_success:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- export REPO=clipboardsync/server
- export TAG=`if [ "$TRAVIS_BRANCH" == "master" ]; then echo "latest"; else echo $TRAVIS_BRANCH
; fi`
- docker build -f Dockerfile -t $REPO:$COMMIT .
- docker tag $REPO:$COMMIT $REPO:$TAG
- docker tag $REPO:$COMMIT $REPO:travis-$TRAVIS_BUILD_NUMBER
- echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
- docker push $REPO
env:
global:
- COMMIT=${TRAVIS_COMMIT::8}
- secure: i7Fsoecvroc5UB3nK7WgtAFEPXxOEDg3qw7wDF0ZumoN7zwiUNg1eMWNpaFe4mhKprxUFBHp8sCQRB6Av5yLY1m/F3l0jcz8NINvZoIIp3krT6fSErVBxFrzepyd87EKdAEr2kkfUyYS8p9GSvgJBpSt9Jg9oE8eGNmImX8jAKbkqIj/JLrpDeKJ6aaU7+psZw6bdrKMu6FTCDmKUkXAwgzXMdDQASbFgF+DzUJh5lWnctLfnfY9wsoi2KI8qS3Pd4h6ifDtb9jScxxgSdu/hHhtvCJ7ig/CxsuS7e/gC/c9BScxJTks1kQF7KYkYx9zt4AebxVhF/Fy8S+UhWrt+9hSSxi89QQuzqYXqM08S24vmI3V+mMHdFZ4/ONK9iZVNMP6s/UXXo0ENjvAyej8GmkekzWwBfp1IKuSJkPa1Hs2zCwCWn2xvQpCCIsGY3MTFOiNGR1kBlJO/YLh6EZF9qyfDYAPV3LNBdSSFLwFEL0dol4cESYHiu+NvHyTORtlk6BtJUHfMLIa0/NxMhMcHBXuYbqQ9ynU25A48zzy4eSfzLzQFPFZPhikyYzKXTayg2/xTonBD7cZY7Tf8a2ISfioewX+BsYsgi30eL7dBA0b49aGktDoFD/jRPxz8hg9yngl7kJqf8YllDJq3ujzIDwIXbw5JdwXNw4xXnMjtEI=
- secure: AZvo2L/sQjHSVlv8baiaNsiEl7GxCnH57qMI+AZ3+CQH9QMn2cQUL3CveWejIzQ599EBoN7voiLfLd99YqpluZUSvOfzuDnxqY6hV44h+ewnpyyQ5tik7ZvxoAmmKTZeKD09p6i5ORJ/jF/oERGaPgPLm3WeK/wkrqI9bE/bIqbpQqLq6RhomakAE11pdKe3xh5NxMY8EB+YYyEyVF4D137Cm+ssZGaJWy972c9kq1HUnTmoLlLsb6PEzptu57dOEZsgulRba1gPMX4mFA3APQwuHfh/iLfOYb42/LwXAiPcAJqipOvweyaLt7KCqUB2l21mIF73CxYTlbFIYO/rBsgquXeA2nWDrnlcri9ld7DgVzm0FKjztQY9K4aPhifZO2aPci0BnhH0SNOJZZEFylFck5R8jA9kQIGROvUjbHzHo1+T9HOgVt2++Zv0yigQCkCsjWzjWfP45xDfhyJZKNKFh6UugQegtw0NTc6fRcALH+WJmFgzJXX1cc5acZ5ttC+eiFoEihzq2/2Gd/DdjRi8WcgskBydIOuySdVhcVXqaswKI+LsHHzq/hMGATuWDLNcnKy3O/jS4gEHQZoQ9AgCC7Pq/K59UgPBJLLzIrIF1SUQ9iugUN7322mGwtZzf7Ib3k/dJWrOIzKc6Vl8SUHQ3Wn6UOZl8AETRL9cvjs=
deploy:
provider: releases
api_key:
secure: xaXR7rKvcqA5SN7vptrcK6JfL5YYH4twbGRHcpdiXhvbz1ObQFbq05vTd66yXFDCsUUYz6kbh9HJyBx5zKlBawNy2sJAvMm2ke4XbiXIMqrgbdeWKLUnBEy2m/sb6/AbN2GXKAl9xp/0zDbkrOuwheft/hFfprDLXN+00Er6KT1zGU2Q72zj6bz1LBSIL4puip2n/7mbhAsmH+aNbJcKqSFKNtye0knD9U5h3fLNDtWzC/EMDE/5Ly68+pKcSKJSpsSH6I6NkZTyBIUFw2CNlN1fh/2qDvZTBpCkLMnIdX9GdvFnqv+y1drxIz/LrKGfBjSkc6jyZYmJyfNRio8moLcbjmA8r4XOsdOBKFZjzSQNf5YnAvuAaqcM0rCec+9PNPucPHYHsZvIMw+qt/HE8nw43JUcNk7GyFQD/FNhT4Sm0cBYhENsXw4Dx3aRIjhMLMLsLDSxpg27KGDPr/YmGwNMcmY/R6bqVsjmnydEmq5JfKyGCfoTKW+rh9hwVyyudOFCXiVIszFuaptVYYPmB5wAs8JXXjVGERpQhJfTStbPlWtvunUbNJp+P5qIKGXpzXOJm3wNdM4taBHIVotoBzEaMyGo1SARmhNxczMo66MdLKDKVif9JZ+xjF5tz5D1qe2Qzwx7ZJH+vW6E1GpkURIYSLLtixKtdiNifyAozPA=
file: target/x86_64-unknown-linux-musl/release/server
on:
repo: icewind1991/clipboard-sync
tags: true

6
Dockerfile Normal file
View file

@ -0,0 +1,6 @@
FROM scratch
ADD target/x86_64-unknown-linux-musl/release/server /
EXPOSE 80
CMD ["/server"]

10
Dockerfile.build Normal file
View file

@ -0,0 +1,10 @@
FROM ekidd/rust-musl-builder
RUN sudo apt-get update && sudo apt-get install -y xorg-dev python3
# We need to add the source code to the image because `rust-musl-builder`
# assumes a UID of 1000, but TravisCI has switched to 2000.
ADD . ./
RUN sudo chown -R rust:rust .
CMD cargo build --release

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# clipboard-sync
Synchronize clipboard between computers

32
appveyor.yml Normal file
View file

@ -0,0 +1,32 @@
image: Visual Studio 2017
install:
- ps: Start-FileDownload "https://static.rust-lang.org/rustup/dist/i686-pc-windows-gnu/rustup-init.exe"
- rustup-init.exe -y --default-host i686-pc-windows-gnu
- SET PATH=%PATH%;C:\Users\appveyor\.cargo\bin
- SET PATH=%PATH%;C:\MinGW\bin
- rustc -V
- cargo -V
init:
- set TAG_NAME=%APPVEYOR_REPO_TAG_NAME%
build_script:
- cargo build --verbose --release
artifacts:
- path: target\release\client.exe
name: portable
deploy:
release: clipbaord-sync-v$(appveyor_build_version)
description: 'Clipboard sync client'
provider: GitHub
auth_token:
secure: UidE7tNm//3VogAs7lqznMBa9HBmzmIj9mbo1mJWwFF20tKC+IG+doBdy52NP8JA
artifact: target\release\client.exe
draft: false
prerelease: false
on:
branch: master # release from master branch only
appveyor_repo_tag: true # deploy on tag push only

8
build_static.sh Executable file
View file

@ -0,0 +1,8 @@
#!/usr/bin/env sh
echo "Building static binaries using ekidd/rust-musl-builder"
docker build -t build-"$1"-image -f Dockerfile.build .
docker run -it --name build-"$1" build-"$1"-image
mkdir -p target/x86_64-unknown-linux-musl/release
docker cp build-"$1":/home/rust/src/target/x86_64-unknown-linux-musl/release/"$1" "target/x86_64-unknown-linux-musl/release/$1"
docker rm build-"$1"
docker rmi build-"$1"-image