mirror of
https://github.com/status-im/libp2p-test-plans.git
synced 2025-01-14 08:54:38 +00:00
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 }}
|