Skip to content

Commit dfc3446

Browse files
Try to get the backport conflict detection GitHub Action working.
It was suggested in the #asfinfra Slack channel[1] that workflows must exist in all branches to work so let's try to add them. Technically merging all revisions affecting the .github/ subtree from trunk. * .github/ Add subtree (This commit technically breaks the backporting requirements, but it won't even distributed downstream so I'm bending the rules this time). [1]: https://the-asf.slack.com/archives/CBX4TSBQ8/p1740835005043529 git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/1.14.x@1924122 13f79535-47bb-0310-9956-ffa450edef68
1 parent 94d8c1b commit dfc3446

File tree

3 files changed

+326
-0
lines changed

3 files changed

+326
-0
lines changed

.github/workflows/autoconf.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
# autoconf.yml -- Configuration for autoconf GitHub Action workflow.
20+
#
21+
22+
name: autoconf
23+
24+
on:
25+
push:
26+
branches: ["*"]
27+
pull_request:
28+
branches: ["*"]
29+
30+
concurrency:
31+
group: ${{ github.workflow }}-${{ github.ref }}
32+
cancel-in-progress: false
33+
34+
jobs:
35+
build:
36+
strategy:
37+
fail-fast: false
38+
matrix:
39+
check-target: [check, davautocheck]
40+
os: [ubuntu-latest, ubuntu-22.04-arm]
41+
42+
runs-on: ${{ matrix.os }}
43+
name: ${{ matrix.os }}, target ${{ matrix.check-target }}
44+
45+
steps:
46+
- name: Install dependencies (Linux, apt-get)
47+
if: runner.os == 'Linux'
48+
run: >
49+
sudo apt-get update &&
50+
sudo apt-get install
51+
libtool
52+
libtool-bin
53+
libapr1-dev
54+
libaprutil1-dev
55+
libserf-dev
56+
libexpat1-dev
57+
zlib1g-dev
58+
libsqlite3-dev
59+
liblz4-dev
60+
libutf8proc-dev
61+
apache2-dev
62+
libsecret-1-dev
63+
64+
- name: Use LF for Git checkout
65+
run: |
66+
git config --global core.autocrlf false
67+
git config --global core.eol lf
68+
69+
- uses: actions/checkout@v4
70+
71+
- name: autogen
72+
run: ./autogen.sh
73+
74+
- name: Configure
75+
run: ./configure --enable-maintainer-mode
76+
77+
- name: Build (make)
78+
run: make -j
79+
80+
- name: Run tests
81+
run: make ${{matrix.check-target}} PARALLEL=16 APACHE_MPM=event
82+
83+
- name: Archive test log
84+
if: always()
85+
uses: actions/upload-artifact@v4
86+
with:
87+
name: tests-${{matrix.os}}-${{matrix.check-target}}.log
88+
path: tests.log
89+
90+
- name: Install (make install)
91+
run: sudo make install

.github/workflows/cmake.yml

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
# cmake.yml -- Configuration for CMake GitHub Action workflow.
20+
#
21+
22+
name: CMake
23+
24+
on:
25+
push:
26+
branches: ["*"]
27+
pull_request:
28+
branches: ["*"]
29+
30+
concurrency:
31+
group: ${{ github.ref }}
32+
cancel-in-progress: false
33+
34+
defaults:
35+
run:
36+
shell: pwsh
37+
38+
jobs:
39+
build:
40+
strategy:
41+
fail-fast: false
42+
matrix:
43+
include:
44+
- name: Windows, shared, x64, with tests
45+
os: windows-latest
46+
build_shared: ON
47+
cmake_generator: Ninja
48+
vcpkg_triplet: x64-windows
49+
arch: x64
50+
run_tests: true
51+
- name: Windows, shared, x64, vs2022, with tests
52+
os: windows-latest
53+
build_shared: ON
54+
cmake_generator: 'Visual Studio 17 2022'
55+
vcpkg_triplet: x64-windows
56+
arch: x64
57+
run_tests: true
58+
- name: Windows, shared, x86
59+
os: windows-latest
60+
build_shared: ON
61+
cmake_generator: Ninja
62+
vcpkg_triplet: x86-windows
63+
arch: x86
64+
- name: Windows, static, x64, with tests
65+
os: windows-latest
66+
build_shared: OFF
67+
cmake_generator: Ninja
68+
vcpkg_triplet: x64-windows-static-md
69+
arch: x64
70+
run_tests: true
71+
- name: Linux, shared, with tests
72+
os: ubuntu-latest
73+
cmake_generator: Ninja
74+
build_shared: ON
75+
run_tests: true
76+
extra_config_opts: >
77+
-DSVN_ENABLE_AUTH_KWALLET=ON
78+
-DSVN_ENABLE_AUTH_GNOME_KEYRING=ON
79+
extra_packages: >
80+
libkf5wallet-dev
81+
libkf5coreaddons-dev
82+
libkf5i18n-dev
83+
libdbus-1-dev
84+
qtbase5-dev
85+
libsecret-1-dev
86+
87+
runs-on: ${{ matrix.os }}
88+
name: ${{ matrix.name }}
89+
90+
env:
91+
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
92+
CMAKE_GENERATOR: ${{ matrix.cmake_generator }}
93+
94+
steps:
95+
- name: Prepare Environment (Windows)
96+
if: runner.os == 'Windows'
97+
run: |
98+
$root = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
99+
Import-Module "$root\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
100+
Enter-VsDevShell -VsInstallPath $root -DevCmdArguments "-arch=${{ matrix.arch }}"
101+
102+
ls env: | foreach { "$($_.Name)=$($_.Value)" >> $env:GITHUB_ENV }
103+
104+
- name: Prepare Environment (Linux)
105+
if: runner.os == 'Windows'
106+
run: |
107+
# nothing yet
108+
109+
- name: Export GitHub Actions cache environment variables
110+
if: runner.os == 'Windows'
111+
uses: actions/github-script@v7
112+
with:
113+
script: |
114+
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
115+
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
116+
117+
- name: Install dependencies (Windows, vcpkg)
118+
if: runner.os == 'Windows'
119+
run: |
120+
C:\vcpkg\vcpkg.exe install --triplet ${{ matrix.vcpkg_triplet }} `
121+
apr apr-util serf expat zlib sqlite3
122+
123+
"CMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV
124+
125+
- name: Install dependencies (Linux, apt-get)
126+
if: runner.os == 'Linux'
127+
run: >
128+
sudo apt-get update &&
129+
sudo apt-get install
130+
libtool
131+
libtool-bin
132+
libapr1-dev
133+
libaprutil1-dev
134+
libserf-dev
135+
libexpat1-dev
136+
zlib1g-dev
137+
libsqlite3-dev
138+
ninja-build
139+
${{ matrix.extra_packages }}
140+
141+
- name: Use LF for Git checkout
142+
run: |
143+
git config --global core.autocrlf false
144+
git config --global core.eol lf
145+
146+
- uses: actions/checkout@v4
147+
148+
- name: gen-make
149+
run: python ./gen-make.py -t cmake
150+
151+
- name: Configure CMake
152+
run: >
153+
cmake -B out
154+
-DBUILD_SHARED_LIBS=${{ matrix.build_shared }}
155+
-DSVN_ENABLE_TESTS=ON
156+
-DSVN_ENABLE_RA_SERF=ON
157+
-DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/installdir
158+
-DVCPKG_TARGET_TRIPLET=${{ matrix.vcpkg_triplet }}
159+
-DSVN_TEST_CONFIGURE_FOR_PARALLEL=ON
160+
${{ matrix.extra_config_opts }}
161+
162+
- name: Build CMake
163+
run: cmake --build out --config Release
164+
165+
- name: Install
166+
run: cmake --install out --config Release
167+
168+
- name: Run all tests
169+
id: run_all_tests
170+
if: matrix.run_tests
171+
working-directory: out
172+
run: ctest --output-on-failure --verbose -C Release --parallel 16
173+
174+
- name: Test shelf2
175+
if: matrix.run_tests
176+
working-directory: out
177+
env:
178+
SVN_EXPERIMENTAL_COMMANDS: shelf2
179+
run: ctest -R shelf2 --verbose -C Release
180+
181+
- name: Test shelf3
182+
if: matrix.run_tests
183+
working-directory: out
184+
env:
185+
SVN_EXPERIMENTAL_COMMANDS: shelf3
186+
run: ctest -R shelf3 --verbose -C Release
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
# autoconf.yml -- Configuration for autoconf GitHub Action workflow.
20+
#
21+
22+
name: backportbot
23+
24+
on:
25+
push:
26+
branches: ["1.14.x"]
27+
pull_request:
28+
branches: ["1.14.x"]
29+
30+
concurrency:
31+
group: ${{ github.workflow }}-${{ github.ref }}
32+
cancel-in-progress: false
33+
34+
jobs:
35+
conflicts:
36+
runs-on: ubuntu-latest
37+
name: Detect conflicts
38+
39+
steps:
40+
- name: Use LF for Git checkout
41+
run: |
42+
git config --global core.autocrlf false
43+
git config --global core.eol lf
44+
45+
- uses: actions/checkout@v4
46+
47+
- name: Detect conflicting backports
48+
run: ./tools/dist/detect-conflicting-backports.py
49+

0 commit comments

Comments
 (0)