mirror of
https://github.com/status-im/libp2p-test-plans.git
synced 2025-01-28 07:35:13 +00:00
2980863ebc
* feat: automate adding new go-libp2p versions to perf * fix: put add-new-impl-versions.yml on schedule
68 lines
2.5 KiB
YAML
68 lines
2.5 KiB
YAML
name: Add new implementation versions
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
# “At minute 36 past every 24th hour.” - https://crontab.guru/#36_*/24_*_*_*
|
|
- cron: '36 */24 * * *'
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
actions: write
|
|
|
|
jobs:
|
|
go:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DIR: perf/impl/go-libp2p
|
|
REPO: libp2p/go-libp2p
|
|
BRANCH: perf/go-libp2p
|
|
steps:
|
|
- name: Checkout test-plans
|
|
uses: actions/checkout@v3
|
|
- name: Configure git
|
|
run: |
|
|
git fetch $BRANCH && git checkout $BRANCH && git rebase $GITHUB_REF -X theirs || git checkout -b $BRANCH
|
|
git config --global user.email $GITHUB_ACTOR@users.noreply.github.com
|
|
git config --global user.name $GITHUB_ACTOR
|
|
- id: go
|
|
uses: actions/setup-go@v3
|
|
with:
|
|
go-version: stable
|
|
- name: Get the latest version (local)
|
|
id: local
|
|
run: ls -d v* | sort -V | tail -n-1 | xargs -I{} echo "version={}" | tee -a $GITHUB_OUTPUT
|
|
working-directory: ${{ env.DIR }}
|
|
- name: Get the latest version (remote)
|
|
id: remote
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
run: gh api repos/$REPO/releases/latest --jq '.tag_name' | xargs -I{} echo "version={}" | tee -a $GITHUB_OUTPUT
|
|
- name: Add the latest version
|
|
if: ${{ !startsWith(steps.remote.outputs.version, steps.local.outputs.version) }}
|
|
env:
|
|
LOCAL_VERSION: ${{ steps.local.outputs.version }}
|
|
REMOTE_VERSION: ${{ steps.remote.outputs.version }}
|
|
GO_VERSION: ${{ steps.go.outputs.go-version }}
|
|
GITHUB_TOKEN: ${{ github.token }}
|
|
run: |
|
|
majorMinorRemoteVersion=$(echo $REMOTE_VERSION | sed 's/\.[0-9]*$//')
|
|
majorMinorGoVersion=$(echo $GO_VERSION | sed 's/\.[0-9]*$//')
|
|
cp -r $LOCAL_VERSION $majorMinorRemoteVersion
|
|
cd $majorMinorRemoteVersion
|
|
sed -i "1s/$LOCAL_VERSION/$majorMinorRemoteVersion/g" go.mod
|
|
go mod tidy -go=$majorMinorGoVersion
|
|
go mod tidy
|
|
go get github.com/libp2p/go-libp2p@$REMOTE_VERSION
|
|
git add .
|
|
git commit -m "chore: add go-libp2p@$REMOTE_VERSION to $DIR"
|
|
git push origin $BRANCH --force
|
|
gh pr create --title "chore: add go-libp2p@$REMOTE_VERSION to $DIR" --body "This PR adds go-libp2p@$REMOTE_VERSION to $DIR" --head $BRANCH --base $GITHUB_REF
|
|
gh workflow run perf.yml --ref $BRANCH
|
|
working-directory: ${{ env.DIR }}
|