1+ name : Update Polkadot API
2+
3+ on :
4+ schedule :
5+ - cron : ' 0 0 * * *'
6+ workflow_dispatch :
7+
8+ jobs :
9+ check-updates :
10+ runs-on : ubuntu-latest
11+
12+ outputs :
13+ has_updates : ${{ steps.check-version.outputs.has_updates }}
14+ new_version : ${{ steps.check-version.outputs.new_version }}
15+
16+ steps :
17+ - name : Checkout repository
18+ uses : actions/checkout@v3
19+
20+ - name : Setup Node.js
21+ uses : actions/setup-node@v3
22+ with :
23+ node-version : ' 20'
24+ cache : ' npm'
25+
26+ - name : Get current Polkadot API version
27+ id : current-version
28+ run : |
29+ CURRENT_VERSION=$(npm list polkadot-api --json | jq -r '.dependencies."polkadot-api".version')
30+ echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
31+
32+ - name : Check latest Polkadot API version
33+ id : check-version
34+ run : |
35+ LATEST_VERSION=$(npm view polkadot-api version)
36+ echo "Latest version: $LATEST_VERSION"
37+ echo "Current version: ${{ steps.current-version.outputs.current_version }}"
38+
39+ if [ "$LATEST_VERSION" != "${{ steps.current-version.outputs.current_version }}" ]; then
40+ echo "has_updates=true" >> $GITHUB_OUTPUT
41+ echo "new_version=$LATEST_VERSION" >> $GITHUB_OUTPUT
42+ else
43+ echo "has_updates=false" >> $GITHUB_OUTPUT
44+ fi
45+
46+ update-papi :
47+ needs : check-updates
48+ if : needs.check-updates.outputs.has_updates == 'true'
49+ runs-on : ubuntu-latest
50+
51+ steps :
52+ - name : Checkout repository
53+ uses : actions/checkout@v3
54+
55+ - name : Setup Node.js
56+ uses : actions/setup-node@v3
57+ with :
58+ node-version : ' 20'
59+ cache : ' npm'
60+
61+ - name : Update Polkadot API
62+ run : |
63+ npm install polkadot-api@${{ needs.check-updates.outputs.new_version }}
64+ npx papi
65+
66+ - name : Run tests
67+ run : npm test
68+
69+ - name : Create Pull Request
70+ uses : peter-evans/create-pull-request@v5
71+ with :
72+ token : ${{ secrets.GITHUB_TOKEN }}
73+ commit-message : " Update Polkadot API to v${{ needs.check-updates.outputs.new_version }}"
74+ title : " Update Polkadot API to v${{ needs.check-updates.outputs.new_version }}"
75+ body : |
76+ This PR updates Polkadot API to v${{ needs.check-updates.outputs.new_version }}.
77+
78+ - Automatically generated by GitHub Actions
79+ - The descriptors have been regenerated using `papi`
80+
81+ Please verify the changes and merge if all tests pass.
82+ branch : " update-papi-v${{ needs.check-updates.outputs.new_version }}"
83+ base : main
84+ labels : dependencies,automated
0 commit comments