@@ -12,42 +12,51 @@ jobs:
1212 create-release :
1313 runs-on : ubuntu-latest
1414 steps :
15- - uses : actions/checkout@v3.0.2
16- - name : Get latest release version
17- id : get_latest_release_version
15+ - name : Increment version
16+ id : increment_version
1817 uses : actions/github-script@v6.1.0
1918 with :
2019 github-token : ${{secrets.GITHUB_TOKEN}}
2120 result-encoding : string
2221 script : |
22+ let latestReleaseVersion = '';
23+
2324 try {
24- return (await github.rest.repos.getLatestRelease( {
25+ const getLatestReleaseParams = {
2526 owner: context.repo.owner,
2627 repo: context.repo.repo
27- })).data.tag_name;
28+ };
29+ console.log("call repos.getLatestRelease:", getLatestReleaseParams);
30+ const latestRelease = await github.rest.repos.getLatestRelease(getLatestReleaseParams);
31+ latestReleaseVersion = latestRelease.data.tag_name;
2832 } catch (e) {
2933 if (e.status === 404) {
30- return 'v0.0.0';
34+ latestReleaseVersion = 'v0.0.0';
35+ } else {
36+ throw e;
3137 }
32-
33- throw e;
3438 }
35- - run : echo "MAJOR_VERSION=$(cat .version)" >> "${GITHUB_ENV}"
36- - name : Increment version
37- id : increment_version
38- uses : actions/github-script@v6.1.0
39- with :
40- github-token : ${{secrets.GITHUB_TOKEN}}
41- result-encoding : string
42- script : |
43- const majorVersion = process.env['MAJOR_VERSION'];
39+
40+ const listPullRequestsAssociatedWithCommitParams = {
41+ owner: context.repo.owner,
42+ repo: context.repo.repo,
43+ commit_sha: '${{ github.sha }}',
44+ };
45+ console.log("call repos.listPullRequestsAssociatedWithCommit:", listPullRequestsAssociatedWithCommitParams);
46+ const pulls = await github.paginate(
47+ github.rest.repos.listPullRequestsAssociatedWithCommit,
48+ listPullRequestsAssociatedWithCommitParams
49+ );
50+ const labels = pulls.flatMap(p => p.labels.map(l => l.name));
51+ const tagNames = latestReleaseVersion.split('.');
4452 let version = [];
4553
46- if ('${{ steps.get_latest_release_version.outputs.result }}'.startsWith(majorVersion)) {
47- const tagNames = '${{ steps.get_latest_release_version.outputs.result }}'.split('.');
48- version = [tagNames[0], tagNames[1], Number(tagNames[2]) + 1];
54+ if (labels.includes('major release')) {
55+ version = [`v${Number(tagNames[0].replace('v', '')) + 1}`, 0, 0];
56+ } else if (labels.includes('minor release')) {
57+ version = [tagNames[0], Number(tagNames[1]) + 1, 0];
4958 } else {
50- version = [majorVersion, 0 ];
59+ version = [tagNames[0], tagNames[1], Number(tagNames[2]) + 1 ];
5160 }
5261
5362 return version.join('.');
5665 with :
5766 github-token : ${{secrets.GITHUB_TOKEN}}
5867 script : |
59- await github.rest.repos.createRelease( {
68+ const createReleaseParams = {
6069 owner: context.repo.owner,
6170 repo: context.repo.repo,
6271 tag_name: '${{ steps.increment_version.outputs.result }}',
6372 generate_release_notes: true
64- });
73+ };
74+ console.log("call repos.createRelease:", createReleaseParams);
75+ await github.rest.repos.createRelease(createReleaseParams);
0 commit comments