-
Notifications
You must be signed in to change notification settings - Fork 519
136 lines (130 loc) · 5.51 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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# 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/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.SUBTREE_APP_ID }}
private-key: ${{ secrets.SUBTREE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.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/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.SUBTREE_APP_ID }}
private-key: ${{ secrets.SUBTREE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.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/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.SUBTREE_APP_ID }}
private-key: ${{ secrets.SUBTREE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.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/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.SUBTREE_APP_ID }}
private-key: ${{ secrets.SUBTREE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
fetch-depth: 0
- name: Subtree Split
uses: ./.github/actions/subtree
with:
directory: "src/Provider/${{ matrix.provider.folder }}"
repository: ${{ matrix.provider.repository }}