Skip to content

Commit 126ded2

Browse files
authored
Merge pull request rust-lang-ja#43 from qryxip/check-for-updates-automatically-every-day
Check for updates automatically every day
2 parents 4c7cd5b + 0c02e82 commit 126ded2

File tree

2 files changed

+103
-1
lines changed

2 files changed

+103
-1
lines changed

.github/workflows/update.yml

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
name: Update
2+
3+
on:
4+
schedule:
5+
# The scheduled jobs run only on `master`. Then we checkout `ja-all-enable`.
6+
# <https://github.community/t5/GitHub-Actions/Scheduled-builds-of-non-default-branch/td-p/32270>
7+
- cron: '0 0 * * *'
8+
push:
9+
branches:
10+
- master
11+
- ja-all-enabled
12+
13+
jobs:
14+
update:
15+
name: Update
16+
runs-on: ubuntu-18.04
17+
18+
steps:
19+
- name: checkout
20+
uses: actions/checkout@v2
21+
with:
22+
ref: ja-all-enabled
23+
24+
- name: setup-python
25+
uses: actions/setup-python@v1
26+
with:
27+
python-version: 3.8.0
28+
29+
- name: rust-toolchain
30+
uses: actions-rs/toolchain@v1
31+
with:
32+
toolchain: stable-x86_64-unknown-linux-gnu
33+
default: true
34+
profile: minimal
35+
36+
- name: '`cargo install --debug --bin cargo-add cargo-edit`'
37+
uses: actions-rs/cargo@v1
38+
with:
39+
command: install
40+
args: --debug --bin cargo-add cargo-edit
41+
42+
- name: '`cargo install --debug cargo-outdated`'
43+
uses: actions-rs/cargo@v1
44+
with:
45+
command: install
46+
args: --debug cargo-outdated
47+
48+
- name: Upgrade the dependencies
49+
id: upgrade
50+
run: |
51+
import json
52+
import subprocess
53+
from collections import defaultdict
54+
55+
cargo_outdated = json.loads(subprocess.run(
56+
['cargo', 'outdated', '--format', 'json', '-d', '1'],
57+
stdout=subprocess.PIPE, check=True,
58+
).stdout.decode('utf8'))
59+
60+
crates = defaultdict(list)
61+
body = '<ul>'
62+
63+
for dependency in cargo_outdated['dependencies']:
64+
if dependency['kind'] != 'Normal':
65+
raise NotImplemented()
66+
crates[dependency['platform']].append(
67+
(dependency['name'], dependency['latest']),
68+
)
69+
body += f'<li>' \
70+
f'<a href="https://crates.io/crates/{dependency["name"]}">' \
71+
f'{dependency["name"]}' \
72+
f'</a> ' \
73+
f'v{dependency["project"]} → v{dependency["latest"]}' \
74+
f'</li>'
75+
body += '</ul>'
76+
if body == '<ul></ul>':
77+
body = 'Only dependencies of dependencies.'
78+
79+
for target, crates in crates.items():
80+
args = ['cargo', 'add']
81+
if target:
82+
args.extend(['--target', target])
83+
args.extend(f'{name}@={ver}' for name, ver in crates)
84+
subprocess.run(args, check=True)
85+
86+
print(f'::set-output name=body::{body}')
87+
shell: python3 {0}
88+
89+
- name: '`cargo update`'
90+
uses: actions-rs/cargo@v1
91+
with:
92+
command: update
93+
94+
- name: Create Pull Request
95+
uses: peter-evans/create-pull-request@v2
96+
with:
97+
token: ${{ secrets.GITHUB_TOKEN }}
98+
commit-message: '[bot] Update the crates'
99+
title: '[bot] Update the crates'
100+
body: ${{ steps.upgrade.outputs.body }}
101+
branch: ja-all-enabled-update-the-crates
102+
base: ja-all-enabled

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
| 名前 | Rustバージョン | 内容 |
1717
|:-- |:--:|:-- |
18-
| [ja][ja-branch] | 1.36.0 | 標準的な内容のテンプレートに日本語のソースコードコメントを付けたもの。注意:2019年言語アップデート後の環境向け。Rust 1.15.1の環境では使用できない |
18+
| [ja][ja-branch] | 1.39.0 | 標準的な内容のテンプレートに日本語のソースコードコメントを付けたもの。注意:~~2019~~ 2020年言語アップデート後の環境向け。Rust 1.15.1の環境では使用できない |
1919

2020
使いかたについては、テンプレートの名前をクリックして表示されたREADMEを参照してください。
2121

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy