Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
jacopocarlini committed Feb 27, 2024
1 parent a247279 commit a7c39e1
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 59 deletions.
128 changes: 69 additions & 59 deletions .github/workflows/check_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ on:

permissions:
pull-requests: write
contents: write
id-token: write


# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Expand All @@ -35,8 +34,6 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.BOT_TOKEN_GITHUB }}

- name: Formatting
id: format
Expand All @@ -46,14 +43,35 @@ jobs:
path: .
fail-on-changes: false

- name: Commit
shell: bash
run: |
git add .
git config --global user.email "[email protected]"
git config --global user.name "pagopa-github-bot"
git commit -m "Auto-Formatting" || exit 0
git push origin ${{ github.ref_name}}
- uses: actions/[email protected]
if: steps.format.outcome != 'success'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
console.log(context);
var comments = await github.rest.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
for (const comment of comments.data) {
console.log(comment);
if (comment.body.includes('Comment this PR with')){
github.rest.issues.deleteComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Comment this PR with *update_code* to update `openapi.json` and format the code. Consider to use pre-commit to format the code.'
})
core.setFailed('Format your code.')
check_size:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -99,30 +117,53 @@ jobs:
console.log('ignored lines: ' + ignored + ' , consider changes: ' + changes);
}
if (changes < 200){
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['size/small']
var labels = await github.rest.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
if (labels.data.find(label => label.name == 'size/large')){
github.rest.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: 'size/large'
})
var labels = await github.rest.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
if (labels.data.find(label => label.name == 'size/large')){
}
if (labels.data.find(label => label.name == 'size/small')){
github.rest.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: 'size/large'
name: 'size/small'
})
}
var comments = await github.rest.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
for (const comment of comments.data) {
if (comment.body.includes('This PR exceeds the recommended size')){
github.rest.issues.deleteComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
if (changes < 200){
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['size/small']
})
}
if (changes > 400){
github.rest.issues.addLabels({
Expand All @@ -132,43 +173,12 @@ jobs:
labels: ['size/large']
})
var comments = await github.rest.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
for (const comment of comments.data) {
if (comment.body.includes('This PR exceeds the recommended size')){
github.rest.issues.deleteComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'This PR exceeds the recommended size of 400 lines. Please make sure you are NOT addressing multiple issues with one PR. _Note this PR might be rejected due to its size._'
})
var labels = await github.rest.issues.listLabelsOnIssue({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
if (labels.data.find(label => label.name == 'size/small')){
github.rest.issues.removeLabel({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
name: 'size/small'
})
}
}
86 changes: 86 additions & 0 deletions .github/workflows/update_code.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Update Code

on:
issue_comment:
types: [created, edited]


permissions:
contents: write
pull-requests: write
issues: write

jobs:
update:
name: Update Openapi and Formatting
runs-on: ubuntu-latest
if: ${{ contains(github.event.comment.body, 'update_code') }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.BOT_TOKEN_GITHUB }}

- name: Checkout Pull Request
run: hub pr checkout ${{ github.event.issue.number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Update OpenApi/Swagger file
run: |
cd ./openapi
chmod +x ./generate_openapi.sh
./generate_openapi.sh
- name: Formatting
id: format
uses: findologic/intellij-format-action@main
with:
path: .
fail-on-changes: false

- name: Commit files
run: |
git config --local user.email "[email protected]"
git config --local user.name "pagopa-github-bot"
git commit -a -m "Formatting"
git push
notify:
needs: [ update ]
runs-on: ubuntu-latest
name: Notify
if: ${{ always() && contains(needs.*.result, 'failure') }}
steps:
- name: Notify if Failure
uses: actions/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
var comments = await github.rest.issues.listComments({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo
});
for (const comment of comments.data) {
if (comment.body.includes('Update Code is failed. Please retry.')){
github.rest.issues.deleteComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id
})
}
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: 'Update Code is failed. Please retry.'
})
core.setFailed('Update Code is failed. Please retry.')

0 comments on commit a7c39e1

Please sign in to comment.