mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-11-06 12:03:40 -05:00
Skip PR jobs unless the PR carries the 'run-ci' label. Applying a label needs triage access, so a fork PR can't enable the matrix by itself. The 'labeled' trigger type is added so applying the label starts a run immediately; skipped jobs cost no runner minutes. Push, schedule and manual dispatch runs are unaffected. Port of the same change on the 3.5.0 branch.
60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
name: Test rsync on Ubuntu
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/ubuntu-build.yml'
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, labeled]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/ubuntu-build.yml'
|
|
schedule:
|
|
- cron: '42 8 * * *'
|
|
|
|
jobs:
|
|
test:
|
|
# temporary gate: PR CI runs only for PRs labeled 'run-ci', to save CI
|
|
# minutes; labels need triage access, so fork PRs can't self-enable.
|
|
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-ci')
|
|
runs-on: ubuntu-latest
|
|
name: Test rsync on Ubuntu
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: prep
|
|
run: |
|
|
sudo apt-get install acl libacl1-dev attr libattr1-dev liblz4-dev libzstd-dev libxxhash-dev python3-cmarkgfm openssl
|
|
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@v4
|
|
with:
|
|
name: ubuntu-bin
|
|
path: |
|
|
rsync
|
|
rsync-ssl
|
|
rsync.1
|
|
rsync-ssl.1
|
|
rsyncd.conf.5
|
|
rrsync.1
|
|
rrsync
|