summaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: 3439e181e3f70d07a1bac853b8feef61a029d2b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
name: build

on:
  push:
    branches: [ master ]
    paths-ignore: [ .cirrus.yml ]
  pull_request:
    branches: [ master ]
    paths-ignore: [ .cirrus.yml ]
  schedule:
    - cron: '42 8 * * *'

jobs:

  ubuntu-build:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v3
    - name: prep
      run: |
        sudo apt-get install acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev python3-cmarkgfm openssl wget
        wget -O git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
        echo "/usr/local/bin" >>$GITHUB_PATH
    - name: configure
      run: ./configure --with-rrsync
    - name: make
      run: make
    - name: install
      run: sudo make install
    - name: info
      run: rsync --version
    - name: check
      run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check
    - name: check30
      run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check30
    - name: check29
      run: sudo RSYNC_EXPECT_SKIPPED=crtimes make check29
    - name: ssl file list
      run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
    - name: save artifact
      uses: actions/upload-artifact@v3
      with:
        name: ubuntu-bin
        path: |
          rsync
          rsync-ssl
          rsync.1
          rsync-ssl.1
          rsyncd.conf.5
          rrsync.1
          rrsync

  macos-build:
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@v3
    - name: prep
      run: |
        brew install automake openssl xxhash zstd lz4 wget
        sudo pip3 install commonmark
        wget -O git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
        echo "/usr/local/bin" >>$GITHUB_PATH
    - name: configure
      run: CPPFLAGS=-I/usr/local/opt/openssl/include/ LDFLAGS=-L/usr/local/opt/openssl/lib/ ./configure --with-rrsync
    - name: make
      run: make
    - name: install
      run: sudo make install
    - name: info
      run: rsync --version
    - name: check
      run: sudo RSYNC_EXPECT_SKIPPED=acls-default,chmod-temp-dir,chown-fake,devices-fake,dir-sgid,protected-regular,xattrs-hlink,xattrs make check
    - name: ssl file list
      run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
    - name: save artifact
      uses: actions/upload-artifact@v3
      with:
        name: macos-bin
        path: |
          rsync
          rsync-ssl
          rsync.1
          rsync-ssl.1
          rsyncd.conf.5
          rrsync.1
          rrsync

  cygwin-build:
    runs-on: windows-2022
    if: (github.event_name == 'schedule' || contains(github.event.head_commit.message, '[buildall]'))
    steps:
    - uses: actions/checkout@v3
    - name: cygwin
      run: choco install -y --no-progress cygwin cyg-get
    - name: prep
      run: |
        cyg-get make autoconf automake gcc-core attr libattr-devel python39 python39-pip libzstd-devel liblz4-devel libssl-devel libxxhash0 libxxhash-devel
        curl.exe -o git-version.h https://gist.githubusercontent.com/WayneD/c11243fa374fc64d4e42f2855c8e3827/raw/rsync-git-version.h
        echo "C:/tools/cygwin/bin" >>$Env:GITHUB_PATH
    - name: commonmark
      run: bash -c 'python3 -mpip install --user commonmark'
    - name: configure
      run: bash -c './configure --with-rrsync'
    - name: make
      run: bash -c 'make'
    - name: install
      run: bash -c 'make install'
    - name: info
      run: bash -c '/usr/local/bin/rsync --version'
    - name: check
      run: bash -c 'RSYNC_EXPECT_SKIPPED=acls-default,acls,chown,devices,dir-sgid,protected-regular make check'
    - name: ssl file list
      run: bash -c 'PATH="/usr/local/bin:$PATH" rsync-ssl --no-motd download.samba.org::rsyncftp/ || true'
    - name: save artifact
      uses: actions/upload-artifact@v3
      with:
        name: cygwin-bin
        path: |
          rsync.exe
          rsync-ssl
          rsync.1
          rsync-ssl.1
          rsyncd.conf.5
          rrsync.1
          rrsync