9e34b4c971e667bebcd608190c3ed6652464fa91
[rsync.git] / .github / workflows / build.yml
1 name: build
2
3 on:
4   push:
5     branches: [ master ]
6     paths-ignore: [ .cirrus.yml ]
7   pull_request:
8     branches: [ master ]
9     paths-ignore: [ .cirrus.yml ]
10   schedule:
11     - cron: '42 8 * * *'
12
13 jobs:
14
15   ubuntu-build:
16     runs-on: ubuntu-20.04
17     steps:
18     - uses: actions/checkout@v2
19     - name: prep
20       run: |
21         sudo apt-get install acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev python3-cmarkgfm openssl wget
22         wget -O git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
23         echo "/usr/local/bin" >>$GITHUB_PATH
24     - name: configure
25       run: ./configure
26     - name: make
27       run: make
28     - name: install
29       run: sudo make install
30     - name: info
31       run: rsync --version
32     - name: check
33       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check
34     - name: check30
35       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check30
36     - name: check29
37       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check29
38     - name: ssl file list
39       run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
40     - name: save artifact
41       uses: actions/upload-artifact@v2
42       with:
43         name: ubuntu-bin
44         path: |
45           rsync
46           rsync-ssl
47           rsync.1
48           rsync-ssl.1
49           rsyncd.conf.5
50
51   macos-build:
52     runs-on: macos-latest
53     steps:
54     - uses: actions/checkout@v2
55     - name: prep
56       run: |
57         brew install automake openssl xxhash zstd lz4 wget
58         sudo pip3 install commonmark
59         wget -O git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
60         echo "/usr/local/bin" >>$GITHUB_PATH
61     - name: configure
62       run: CPPFLAGS=-I/usr/local/opt/openssl/include/ LDFLAGS=-L/usr/local/opt/openssl/lib/ ./configure
63     - name: make
64       run: make
65     - name: install
66       run: sudo make install
67     - name: info
68       run: rsync --version
69     - name: check
70       run: sudo RSYNC_EXPECT_SKIPPED=acls-default,chmod-temp-dir,chown-fake,devices-fake,dir-sgid,protected-regular,xattrs-hlink,xattrs make check
71     - name: ssl file list
72       run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
73     - name: save artifact
74       uses: actions/upload-artifact@v2
75       with:
76         name: macos-bin
77         path: |
78           rsync
79           rsync-ssl
80           rsync.1
81           rsync-ssl.1
82           rsyncd.conf.5
83
84   cygwin-build:
85     runs-on: windows-latest
86     if: (github.event_name == 'schedule' || contains(github.event.head_commit.message, '[buildall]'))
87     steps:
88     - uses: actions/checkout@v2
89     - uses: crazy-max/ghaction-chocolatey@v1.2.2
90       with:
91         args: install -y --no-progress cygwin cyg-get
92     - name: prep
93       run: |
94         cyg-get make autoconf automake gcc-core attr libattr-devel python38 python38-pip libzstd-devel liblz4-devel libssl-devel libxxhash0 libxxhash-devel
95         curl.exe -o git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
96         echo "C:/tools/cygwin/bin" >>$Env:GITHUB_PATH
97     - name: commonmark
98       run: bash -c 'python3 -mpip install --user commonmark'
99     - name: configure
100       run: bash -c './configure'
101     - name: make
102       run: bash -c 'make'
103     - name: install
104       run: bash -c 'make install'
105     - name: info
106       run: bash -c '/usr/local/bin/rsync --version'
107     - name: check
108       run: bash -c 'RSYNC_EXPECT_SKIPPED=acls-default,acls,chown,devices,dir-sgid,protected-regular make check'
109     - name: ssl file list
110       run: bash -c 'PATH="/usr/local/bin:$PATH" rsync-ssl --no-motd download.samba.org::rsyncftp/ || true'
111     - name: save artifact
112       uses: actions/upload-artifact@v2
113       with:
114         name: cygwin-bin
115         path: |
116           rsync.exe
117           rsync-ssl
118           rsync.1
119           rsync-ssl.1
120           rsyncd.conf.5