1+ # $schema: https://json.schemastore.org/github-workflow.json
2+
3+ name : ' Update different versions'
4+ on :
5+ schedule :
6+ - cron : ' 30 1 * * 2'
7+ workflow_dispatch :
8+
9+ permissions :
10+ contents : write
11+ pull-requests : write
12+
13+ jobs :
14+ update-versions :
15+ runs-on : ubuntu-latest
16+ steps :
17+ - name : Checkout repository
18+ uses : actions/checkout@v4
19+
20+ - name : Setup Node.js
21+ uses : actions/setup-node@v4
22+ with :
23+ node-version : ' 20'
24+
25+ - name : Get latest DUMP1090_VERSION
26+ id : dump1090
27+ run : |
28+ VERSION=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/flightaware/dump1090/tags | jq -r '.[0].name')
29+ echo "version=$VERSION" >> $GITHUB_OUTPUT
30+ echo "Latest DUMP1090_VERSION: $VERSION"
31+
32+ - name : Get latest PIAWARE_VERSION
33+ id : piaware
34+ run : |
35+ VERSION=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/flightaware/piaware_builder/tags | jq -r '.[0].name')
36+ echo "version=$VERSION" >> $GITHUB_OUTPUT
37+ echo "Latest PIAWARE_VERSION: $VERSION"
38+
39+ - name : Get latest readsb commit
40+ id : readsb
41+ run : |
42+ COMMIT=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repositories/454807301/commits/master | jq -r '.sha')
43+ echo "commit=$COMMIT" >> $GITHUB_OUTPUT
44+ echo "Latest readsb commit: $COMMIT"
45+
46+ - name : Get latest mlat-client commit
47+ id : mlat-client
48+ run : |
49+ COMMIT=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/wiedehopf/mlat-client/commits/master | jq -r '.sha')
50+ echo "commit=$COMMIT" >> $GITHUB_OUTPUT
51+ echo "Latest mlat-client commit: $COMMIT"
52+
53+ - name : Get latest adsbexchange-stats commit
54+ id : adsbexchange-stats
55+ run : |
56+ COMMIT=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/adsbxchange/adsbexchange-stats/commits/master | jq -r '.sha')
57+ echo "commit=$COMMIT" >> $GITHUB_OUTPUT
58+ echo "Latest adsbexchange-stats commit: $COMMIT"
59+
60+ - name : Get latest RADARBOX_MLAT_VERSION
61+ id : radarbox-mlat
62+ run : |
63+ VERSION=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/mutability/mlat-client/tags | jq -r '.[0].name')
64+ echo "version=$VERSION" >> $GITHUB_OUTPUT
65+ echo "Latest RADARBOX_MLAT_VERSION: $VERSION"
66+
67+ - name : Get latest RTL_SDR_VERSION
68+ id : rtl-sdr
69+ run : |
70+ VERSION=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/osmocom/rtl-sdr/tags | jq -r '.[0].name')
71+ echo "version=$VERSION" >> $GITHUB_OUTPUT
72+ echo "Latest RTL_SDR_VERSION: $VERSION"
73+
74+ - name : Get latest FR24FEED versions
75+ id : fr24feed
76+ run : |
77+ # Get FR24FEED versions from JSON
78+ JSON_DATA=$(curl -s https://repo-feed.flightradar24.com/fr24feed_versions.json)
79+ AMD64_VERSION=$(echo "$JSON_DATA" | jq -r '.platform.linux_x86_64_tgz.version')
80+ ARMHF_VERSION=$(echo "$JSON_DATA" | jq -r '.platform.linux_arm_tgz.version')
81+ echo "amd64_version=$AMD64_VERSION" >> $GITHUB_OUTPUT
82+ echo "armhf_version=$ARMHF_VERSION" >> $GITHUB_OUTPUT
83+ echo "Latest FR24FEED_AMD64_VERSION: $AMD64_VERSION"
84+ echo "Latest FR24FEED_ARMHF_VERSION: $ARMHF_VERSION"
85+
86+ # - name: Get latest PLANEFINDER versions
87+ # id: planefinder
88+ # run: |
89+ # # Scrape PlaneFinder client page for versions
90+ # PAGE_CONTENT=$(curl -s https://planefinder.net/coverage/client)
91+
92+ # # Extract AMD64 version
93+ # AMD64_VERSION=$(echo "$PAGE_CONTENT" | grep -oP 'pfclient_\K[0-9]+\.[0-9]+\.[0-9]+(?=_amd64\.tar\.gz)' | head -1)
94+
95+ # # Extract ARM64 version
96+ # ARM64_VERSION=$(echo "$PAGE_CONTENT" | grep -oP 'pfclient_\K[0-9]+\.[0-9]+\.[0-9]+(?=_arm64\.tar\.gz)' | head -1)
97+
98+ # # Extract ARMHF version
99+ # ARMHF_VERSION=$(echo "$PAGE_CONTENT" | grep -oP 'pfclient_\K[0-9]+\.[0-9]+\.[0-9]+(?=_armhf\.tar\.gz)' | head -1)
100+
101+ # echo "amd64_version=$AMD64_VERSION" >> $GITHUB_OUTPUT
102+ # echo "arm64_version=$ARM64_VERSION" >> $GITHUB_OUTPUT
103+ # echo "armhf_version=$ARMHF_VERSION" >> $GITHUB_OUTPUT
104+ # echo "Latest PLANEFINDER_AMD64_VERSION: $AMD64_VERSION"
105+ # echo "Latest PLANEFINDER_ARM64_VERSION: $ARM64_VERSION"
106+ # echo "Latest PLANEFINDER_ARMHF_VERSION: $ARMHF_VERSION"
107+ - name : Update Dockerfile with new versions
108+ run : |
109+ # Update DUMP1090_VERSION
110+ sed -i "s/^ENV DUMP1090_VERSION=.*/ENV DUMP1090_VERSION=${{ steps.dump1090.outputs.version }}/" Dockerfile
111+
112+ # Update PIAWARE_VERSION
113+ sed -i "s/^ENV PIAWARE_VERSION=.*/ENV PIAWARE_VERSION=${{ steps.piaware.outputs.version }}/" Dockerfile
114+
115+ # Update readsb commit
116+ sed -i "s/COMMIT_READSB=[a-zA-Z0-9]*/COMMIT_READSB=${{ steps.readsb.outputs.commit }}/" Dockerfile
117+
118+ # Update mlat-client commit
119+ sed -i "s/COMMIT_MLAT_CLIENT=[a-zA-Z0-9]*/COMMIT_MLAT_CLIENT=${{ steps.mlat-client.outputs.commit }}/" Dockerfile
120+
121+ # Update adsbexchange-stats commit
122+ sed -i "s/COMMIT_ADSBEXCHANGE_STATS=[a-zA-Z0-9]*/COMMIT_ADSBEXCHANGE_STATS=${{ steps.adsbexchange-stats.outputs.commit }}/" Dockerfile
123+
124+ # Update RADARBOX_MLAT_VERSION
125+ sed -i "s/^ENV RADARBOX_MLAT_VERSION=.*/ENV RADARBOX_MLAT_VERSION=${{ steps.radarbox-mlat.outputs.version }}/" Dockerfile
126+
127+ # Update RTL_SDR_VERSION
128+ sed -i "s/^ENV RTL_SDR_VERSION=.*/ENV RTL_SDR_VERSION=${{ steps.rtl-sdr.outputs.version }}/" Dockerfile
129+
130+ # Update FR24FEED versions
131+ # remove v prefix
132+ FR24FEED_AMD64_VERSION=$(echo "${{ steps.fr24feed.outputs.amd64_version }}" | sed 's/^v//')
133+ sed -i "s/^ENV FR24FEED_AMD64_VERSION=.*/ENV FR24FEED_AMD64_VERSION=${FR24FEED_AMD64_VERSION}/" Dockerfile
134+ FR24FEED_ARMHF_VERSION=$(echo "${{ steps.fr24feed.outputs.armhf_version }}" | sed 's/^v//')
135+ sed -i "s/^ENV FR24FEED_ARMHF_VERSION=.*/ENV FR24FEED_ARMHF_VERSION=${FR24FEED_ARMHF_VERSION}/" Dockerfile
136+
137+ # # Update PLANEFINDER versions
138+ # # remove v prefix
139+ # PLANEFINDER_AMD64_VERSION=$(echo "${{ steps.planefinder.outputs.amd64_version }}" | sed 's/^v//')
140+ # sed -i "s/^ENV PLANEFINDER_AMD64_VERSION=.*/ENV PLANEFINDER_AMD64_VERSION=${PLANEFINDER_AMD64_VERSION}/" Dockerfile
141+ # PLANEFINDER_ARM64_VERSION=$(echo "${{ steps.planefinder.outputs.arm64_version }}" | sed 's/^v//')
142+ # sed -i "s/^ENV PLANEFINDER_ARM64_VERSION=.*/ENV PLANEFINDER_ARM64_VERSION=${PLANEFINDER_ARM64_VERSION}/" Dockerfile
143+ # PLANEFINDER_ARMHF_VERSION=$(echo "${{ steps.planefinder.outputs.armhf_version }}" | sed 's/^v//')
144+ # sed -i "s/^ENV PLANEFINDER_ARMHF_VERSION=.*/ENV PLANEFINDER_ARMHF_VERSION=${PLANEFINDER_ARMHF_VERSION}/" Dockerfile
145+
146+ - name : Check for changes
147+ id : changes
148+ run : |
149+ if git diff --quiet; then
150+ echo "No changes detected"
151+ echo "has_changes=false" >> $GITHUB_OUTPUT
152+ else
153+ echo "Changes detected"
154+ echo "has_changes=true" >> $GITHUB_OUTPUT
155+ git diff
156+ fi
157+
158+ - name : Create Pull Request
159+ if : steps.changes.outputs.has_changes == 'true'
160+ uses : peter-evans/create-pull-request@v5
161+ with :
162+ token : ${{ secrets.GITHUB_TOKEN }}
163+ commit-message : |
164+ chore: update component versions
165+
166+ - DUMP1090_VERSION: ${{ steps.dump1090.outputs.version }}
167+ - PIAWARE_VERSION: ${{ steps.piaware.outputs.version }}
168+ - readsb commit: ${{ steps.readsb.outputs.commit }}
169+ - mlat-client commit: ${{ steps.mlat-client.outputs.commit }}
170+ - adsbexchange-stats commit: ${{ steps.adsbexchange-stats.outputs.commit }}
171+ - RADARBOX_MLAT_VERSION: ${{ steps.radarbox-mlat.outputs.version }}
172+ - RTL_SDR_VERSION: ${{ steps.rtl-sdr.outputs.version }}
173+ - FR24FEED_AMD64_VERSION: ${{ steps.fr24feed.outputs.amd64_version }}
174+ - FR24FEED_ARMHF_VERSION: ${{ steps.fr24feed.outputs.armhf_version }}
175+ - PLANEFINDER_AMD64_VERSION: ${{ steps.planefinder.outputs.amd64_version }}
176+ - PLANEFINDER_ARM64_VERSION: ${{ steps.planefinder.outputs.arm64_version }}
177+ - PLANEFINDER_ARMHF_VERSION: ${{ steps.planefinder.outputs.armhf_version }}
178+ title : ' chore: update component versions'
179+ body : |
180+ ## Automated Version Update
181+
182+ This PR updates the following component versions:
183+
184+ ### Git Repository Tags/Releases
185+ - **DUMP1090_VERSION**: `${{ steps.dump1090.outputs.version }}`
186+ - **PIAWARE_VERSION**: `${{ steps.piaware.outputs.version }}`
187+ - **RADARBOX_MLAT_VERSION**: `${{ steps.radarbox-mlat.outputs.version }}`
188+ - **RTL_SDR_VERSION**: `${{ steps.rtl-sdr.outputs.version }}`
189+
190+ ### Git Repository Commits (latest from master)
191+ - **readsb commit**: `${{ steps.readsb.outputs.commit }}`
192+ - **mlat-client commit**: `${{ steps.mlat-client.outputs.commit }}`
193+ - **adsbexchange-stats commit**: `${{ steps.adsbexchange-stats.outputs.commit }}`
194+
195+ ### FR24FEED Versions (from JSON API)
196+ - **FR24FEED_AMD64_VERSION**: `${{ steps.fr24feed.outputs.amd64_version }}`
197+ - **FR24FEED_ARMHF_VERSION**: `${{ steps.fr24feed.outputs.armhf_version }}`
198+
199+ ### PlaneFinder Versions (scraped from website)
200+ - **PLANEFINDER_AMD64_VERSION**: `${{ steps.planefinder.outputs.amd64_version }}`
201+ - **PLANEFINDER_ARM64_VERSION**: `${{ steps.planefinder.outputs.arm64_version }}`
202+ - **PLANEFINDER_ARMHF_VERSION**: `${{ steps.planefinder.outputs.armhf_version }}`
203+
204+ This update was automatically generated by the version update workflow.
205+ branch : update-versions
206+ delete-branch : true
0 commit comments