-
Notifications
You must be signed in to change notification settings - Fork 519
112 lines (106 loc) · 4.58 KB
/
subtree.yml
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
# This GitHub Action will push code for each provider/component to its own repository.
# This is useful to have a better overview of the code and to have a better control over the releases.
# The subtree is pushed to a repository named `geocoder-php/{provider}-provider`.
# Previously, this process used https://www.subtreesplit.com/ service.
#
# This worflow is based on GitHub documentation: https://docs.github.com/en/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository
# This workflow uses https://github.com/newren/git-filter-repo tool.
#
# This workflow needs a GitHub token with Contents and Workflows read & write scopes.
name: Subtree Split
on:
push:
branches: [ "master" ]
jobs:
subtree-common:
name: Subtree for Common
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.SUBTREE_GITHUB_TOKEN }}
fetch-depth: 0
- name: Subtree Split
uses: ./.github/actions/subtree
with:
directory: src/Common
repository: php-common
subtree-http:
name: Subtree for Http
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.SUBTREE_GITHUB_TOKEN }}
fetch-depth: 0
- name: Subtree Split
uses: ./.github/actions/subtree
with:
directory: src/Http
repository: php-common-http
subtree-plugin:
name: Subtree for Plugin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.SUBTREE_GITHUB_TOKEN }}
fetch-depth: 0
- name: Subtree Split
uses: ./.github/actions/subtree
with:
directory: src/Plugin
repository: plugin
subtree-provider:
name: Subtree for provider ${{ matrix.provider.folder }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
provider:
- { folder: AlgoliaPlaces, repository: algolia-places-provider }
- { folder: ArcGISOnline, repository: arcgis-online-provider }
- { folder: AzureMaps, repository: azure-maps-provider }
- { folder: BingMaps, repository: bing-maps-provider }
- { folder: Cache, repository: cache-provider }
- { folder: Chain, repository: chain-provider }
- { folder: FreeGeoIp, repository: free-geoip-provider }
- { folder: GeoIP2, repository: geoip2-provider }
# - { folder: GeoIPs, repository: geoips-provider }
- { folder: GeoPlugin, repository: geo-plugin-provider }
- { folder: GeocodeEarth, repository: geocode-earth-provider }
- { folder: Geonames, repository: geonames-provider }
- { folder: GoogleMaps, repository: google-maps-provider }
- { folder: GoogleMapsPlaces, repository: google-maps-places-provider }
- { folder: GraphHopper, repository: graphhopper-provider }
- { folder: Here, repository: here-provider }
- { folder: HostIp, repository: host-ip-provider }
- { folder: IP2Location, repository: ip2location-provider }
# - { folder: IP2LocationBinary, repository: ip2location-binary-provider }
- { folder: IpInfo, repository: ip-info-provider }
- { folder: IpInfoDb, repository: ip-info-db-provider }
- { folder: Ipstack, repository: ipstack-provider }
- { folder: LocationIQ, repository: locationiq-provider }
- { folder: MapQuest, repository: mapquest-provider }
- { folder: Mapbox, repository: mapbox-provider }
# - { folder: Mapzen, repository: mapzen-provider }
- { folder: MaxMind, repository: maxmind-provider }
- { folder: MaxMindBinary, repository: maxmind-binary-provider }
- { folder: Nominatim, repository: nominatim-provider }
- { folder: OpenCage, repository: open-cage-provider }
- { folder: OpenRouteService, repository: openrouteservice-provider }
- { folder: Pelias, repository: pelias-provider }
- { folder: Photon, repository: photon-provider }
- { folder: PickPoint, repository: pickpoint-provider }
- { folder: TomTom, repository: tomtom-provider }
- { folder: Yandex, repository: yandex-provider }
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.SUBTREE_GITHUB_TOKEN }}
fetch-depth: 0
- name: Subtree Split
uses: ./.github/actions/subtree
with:
directory: "src/Provider/${{ matrix.provider.folder }}"
repository: ${{ matrix.provider.repository }}