7643f90e5e2be1b2b94049c1eecf0295f20b081b
[platform/core/csapi/xsf.git] / .circleci / config.yml
1 version: 2
2
3 jobs:
4
5   build-test:
6     docker:
7       - image: mcr.microsoft.com/dotnet/core/sdk:3.0
8     steps:
9       - checkout
10       - run: curl -sL https://art.sec.samsung.net/artifactory/tools/CircleCI/scripts/set_proxy_setting.sh | sh
11       - run: ./build.sh build
12
13   source-deployment:
14     docker:
15       - image: mcr.microsoft.com/dotnet/core/sdk:3.0
16     steps:
17       - checkout
18       - add_ssh_keys:
19          fingerprints:
20            - "c7:9c:e0:d3:5a:2a:4c:eb:e2:79:92:dc:87:74:b7:bd  "
21       - run:
22           command: |
23             mkdir -p ~/.ssh && echo "Host *" > ~/.ssh/config && echo " StrictHostKeyChecking no" >> ~/.ssh/config
24             git remote add spin ssh://jh0506.yun@165.213.149.170:29418/platform/core/csapi/xsf
25             git fetch spin
26             git push -f spin HEAD:tizen_wearable
27             git config --local user.name "TizenAPI-Bot"
28             git config --local user.email "tizenapi@samsung.com"         
29             git checkout dev
30             git cherry-pick master
31             git push origin dev
32
33   build-nightly:
34     docker:
35       - image: mcr.microsoft.com/dotnet/core/sdk:3.0
36     steps:
37       - checkout
38       - run: curl -sL https://art.sec.samsung.net/artifactory/tools/CircleCI/scripts/set_proxy_setting.sh | sh
39       - run:
40           command: |
41             VERSION=$(./build.sh version nightly)
42             ./build.sh build
43             ./build.sh pack ${VERSION}
44       - persist_to_workspace:
45           root: .
46           paths:
47             - XSF.*.nupkg
48
49   build-release:
50     docker:
51       - image: mcr.microsoft.com/dotnet/core/sdk:3.0
52     steps:
53       - checkout
54       - run: curl -sL https://art.sec.samsung.net/artifactory/tools/CircleCI/scripts/set_proxy_setting.sh | sh
55       - run:
56           command: |
57             VERSION=$(echo ${CIRCLE_TAG} | sed -e "s/^v//")
58             ./build.sh build
59             ./build.sh pack ${VERSION}
60       - persist_to_workspace:
61           root: .
62           paths:
63             - XSF.*.nupkg
64
65   deploy:
66     docker:
67       - image: mcr.microsoft.com/dotnet/core/sdk:3.0
68     environment:
69       ART_URL: https://art.sec.samsung.net/artifactory
70     steps:
71       - checkout
72       - attach_workspace:
73           at: .
74       - run: curl -sL https://art.sec.samsung.net/artifactory/tools/CircleCI/scripts/set_proxy_setting.sh | sh
75       - run: curl -fL https://getcli.jfrog.io | sh
76       - run:
77           command: |
78             ./jfrog rt config --url ${ART_URL} --user ${ART_USER} --password ${ART_PASSWORD} --interactive=false
79             ./jfrog rt u XSF.*.nupkg dotnet_nuget --build-name=${CIRCLE_REPOSITORY_URL} --build-number=${CIRCLE_SHA1}
80             ./jfrog rt bag ${CIRCLE_REPOSITORY_URL} ${CIRCLE_SHA1} `realpath ${CIRCLE_WORKING_DIRECTORY}`
81             ./jfrog rt bp ${CIRCLE_REPOSITORY_URL} ${CIRCLE_SHA1}
82
83   github-release:
84     docker:
85       - image: cibuilds/github:0.10
86     environment:
87       GITHUB_API: https://github.sec.samsung.net/api/v3/
88     steps:
89       - attach_workspace:
90           at: .
91       - run:
92           command: |
93             ghr -t ${GITHUB_TOKEN} -u dotnet -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -replace ${CIRCLE_TAG} *.nupkg
94
95
96 workflows:
97   version: 2
98
99   commit:
100     jobs:
101       - build-test
102
103   deployment:
104     jobs:
105       - source-deployment:
106           filters:
107             branches:
108               only:
109                 - master
110
111   nightly:
112     triggers:
113       - schedule:
114           cron: "0 15 * * *"
115           filters:
116             branches:
117               only:
118                 - master
119     jobs:
120       - build-nightly
121       - deploy:
122           requires:
123             - build-nightly
124
125   release:
126     jobs:
127       - build-release:
128           filters:
129             tags:
130               only: /^v[0-9]+.*/
131             branches:
132               ignore: /.*/
133       - deploy:
134           requires:
135             - build-release
136           filters:
137             tags:
138               only: /^v[0-9]+.*/
139             branches:
140               ignore: /.*/
141       - github-release:
142           requires:
143             - deploy
144           filters:
145             tags:
146               only: /^v[0-9]+.*/
147             branches:
148               ignore: /.*/
149
150
151