Skip to content

check for new releases iperf3 #26257

check for new releases iperf3

check for new releases iperf3 #26257

name: check for new releases iperf3
on:
workflow_dispatch:
schedule:
- cron: "*/30 */1 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: write-all
jobs:
skip_duplicate_job:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
concurrent_skipping: "always"
cancel_others: "false"
skip_after_successful_duplicate: false
do_not_skip: ""
check_release:
if: ${{ needs.skip_duplicate_job.outputs.should_skip != 'true' }}
needs: skip_duplicate_job
outputs:
continue_build: ${{ steps.continue_build.outputs.continue_build }}
runs-on: ubuntu-latest
name: "Check for latest iperf3 tags"
env:
continue_build: "no"
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
steps:
- name: Get latest esnet/iperf tag
run: echo "upstream_iperf3_tag=$(git ls-remote -q -t --refs "https://github.com/esnet/iperf.git" | awk '{sub("refs/tags/", "");sub("(.*)(-|rc|iperf|trunk|3.1b1|3.1b2|3.1b3)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n1)" >> $GITHUB_ENV
- name: Get latest userdocs/iperf3-static tag
run: echo "local_iperf3_tag=$(git ls-remote -q -t --refs "https://github.com/userdocs/iperf3-static.git" | awk '{sub("refs/tags/", "");sub("(.*)(-|rc|iperf|trunk|3.1b1|3.1b2|3.1b3)(.*)", ""); print $2 }' | awk '!/^$/' | sort -rV | head -n1)" >> $GITHUB_ENV
- name: Test values - latest upstream vs local tags
id: continue_build
run: |
ver() {
local test_array
read -ra test_array < <(printf "%s" "${@//./ }")
printf "%d%03d%03d%03d" "${test_array[@]}"
}
if [[ "$(ver "${{ env.upstream_iperf3_tag }}")" -gt "$(ver "${{ env.local_iperf3_tag }}")" ]]; then
printf "%-14s latest:%-10s iperf3-static:%-10s %s\n" "$iray" "${{ env.upstream_iperf3_tag }}" "${{ env.local_iperf3_tag }}" "< New version available - workflow will be triggered"
echo "continue_build=yes" >> $GITHUB_ENV
else
printf "%-14s latest:%-10s iperf3-static:%-10s\n" "$iray" "${{ env.upstream_iperf3_tag }}" "${{ env.local_iperf3_tag }}"
fi
echo "continue_build=${{ env.continue_build }}" >> $GITHUB_OUTPUT
- name: trigger workflow - iperf3 alpine multi
if: env.continue_build == 'yes'
uses: benc-uk/workflow-dispatch@v1
with:
workflow: "alpine_multi.yml"
repo: "userdocs/iperf3-static"
token: ${{ secrets.GITHUB_TOKEN }}
- name: trigger workflow - iperf3 cygwin cmd
if: env.continue_build == 'yes'
uses: benc-uk/workflow-dispatch@v1
with:
workflow: "cygwin_cmd.yml"
repo: "userdocs/iperf3-static"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Await local workflow - alpine multi
if: env.continue_build == 'yes'
uses: codex-/await-local-workflow-run@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
workflow: "alpine_multi.yml"
timeout_mins: 20
poll_interval_ms: 10000
- name: Await local workflow - cygwin cmd
if: env.continue_build == 'yes'
uses: codex-/await-local-workflow-run@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
workflow: "cygwin_cmd.yml"
timeout_mins: 20
poll_interval_ms: 10000