Get rid of gensend target & cached git version.
[rsync.git] / .github / workflows / build.yml
1 name: build
2
3 on:
4   push:
5     branches: [ master ]
6   pull_request:
7     branches: [ master ]
8   schedule:
9     - cron: '42 8 * * *'
10
11 jobs:
12
13   ubuntu-build:
14     runs-on: ubuntu-20.04
15     steps:
16     - uses: actions/checkout@v4
17       fetch-depth: 0
18     - name: prep
19       run: |
20         sudo apt-get install acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev python3-cmarkgfm openssl
21         echo "/usr/local/bin" >>$GITHUB_PATH
22     - name: configure
23       run: ./configure --with-rrsync
24     - name: make
25       run: make
26     - name: install
27       run: sudo make install
28     - name: info
29       run: rsync --version
30     - name: check
31       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check
32     - name: check30
33       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check30
34     - name: check29
35       run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check29
36     - name: ssl file list
37       run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
38     - name: save artifact
39       uses: actions/upload-artifact@v3
40       with:
41         name: ubuntu-bin
42         path: |
43           rsync
44           rsync-ssl
45           rsync.1
46           rsync-ssl.1
47           rsyncd.conf.5
48           rrsync.1
49           rrsync
50
51   macos-build:
52     runs-on: macos-latest
53     steps:
54     - uses: actions/checkout@v4
55       fetch-depth: 0
56     - name: prep
57       run: |
58         brew install automake openssl xxhash zstd lz4
59         sudo pip3 install commonmark
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 --with-rrsync
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@v3
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           rrsync.1
84           rrsync
85
86   cygwin-build:
87     runs-on: windows-2022
88     if: (github.event_name == 'schedule' || contains(github.event.head_commit.message, '[buildall]'))
89     steps:
90     - uses: actions/checkout@v4
91       fetch-depth: 0
92     - name: cygwin
93       run: choco install -y --no-progress cygwin cyg-get
94     - name: prep
95       run: |
96         cyg-get make autoconf automake gcc-core attr libattr-devel python39 python39-pip libzstd-devel liblz4-devel libssl-devel libxxhash0 libxxhash-devel
97         echo "C:/tools/cygwin/bin" >>$Env:GITHUB_PATH
98     - name: commonmark
99       run: bash -c 'python3 -mpip install --user commonmark'
100     - name: configure
101       run: bash -c './configure --with-rrsync'
102     - name: make
103       run: bash -c 'make'
104     - name: install
105       run: bash -c 'make install'
106     - name: info
107       run: bash -c '/usr/local/bin/rsync --version'
108     - name: check
109       run: bash -c 'RSYNC_EXPECT_SKIPPED=acls-default,acls,chown,devices,dir-sgid,protected-regular make check'
110     - name: ssl file list
111       run: bash -c 'PATH="/usr/local/bin:$PATH" rsync-ssl --no-motd download.samba.org::rsyncftp/ || true'
112     - name: save artifact
113       uses: actions/upload-artifact@v3
114       with:
115         name: cygwin-bin
116         path: |
117           rsync.exe
118           rsync-ssl
119           rsync.1
120           rsync-ssl.1
121           rsyncd.conf.5
122           rrsync.1
123           rrsync