Skip to content

Commit

Permalink
Merge branch 'beta/v0.37' into sync-upstream
Browse files Browse the repository at this point in the history
Signed-off-by: Hayato Mizushima <[email protected]>
  • Loading branch information
hayato-m126 committed Oct 17, 2024
2 parents 2be4572 + a074c38 commit 9f595a8
Show file tree
Hide file tree
Showing 8 changed files with 337 additions and 16 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/beta-to-tier4-main-sync.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: beta-to-tier4-main-sync

on:
workflow_dispatch:
inputs:
source_branch:
description: Source branch
required: true
type: string

jobs:
sync-beta-branch:
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}

- name: Run sync-branches
uses: autowarefoundation/autoware-github-actions/sync-branches@v1
with:
token: ${{ steps.generate-token.outputs.token }}
base-branch: tier4/main
sync-pr-branch: beta-to-tier4-main-sync
sync-target-repository: https://github.com/tier4/autoware.universe.git
sync-target-branch: ${{ inputs.source_branch }}
pr-title: "chore: sync beta branch ${{ inputs.source_branch }} with tier4/main"
pr-labels: |
bot
sync-beta-branch
auto-merge-method: merge
34 changes: 18 additions & 16 deletions .github/workflows/comment-on-pr.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
name: comment-on-pr

on:
pull_request_target:
pull_request:
types:
- opened
branches:
- beta/v0.[0-9]+.[1-9]+

jobs:
comment-on-pr:
runs-on: ubuntu-22.04
permissions:
pull-requests: write
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Initial PR comment
uses: marocchino/sticky-pull-request-comment@v2
with:
message: |
Thank you for contributing to the Autoware project!
🚧 If your pull request is in progress, [switch it to draft mode](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft).
Please ensure:
- You've checked our [contribution guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/).
- Your PR follows our [pull request guidelines](https://autowarefoundation.github.io/autoware-documentation/main/contributing/pull-request-guidelines/).
- All required CI checks pass before [marking the PR ready for review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review).
- name: Create comments
run: |
cat << EOF > comments
### Merging guidelines for the beta branch
Please use `Squash and merge` as the default.
However, when incorporating multiple changes with cherry-pick, use a `Create a merge commit` to preserve the changes in the history.
EOF
- name: Post comments
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
URL: ${{ github.event.pull_request.html_url }}
run: gh pr comment -F ./comments "${URL}"
45 changes: 45 additions & 0 deletions .github/workflows/dispatch-push-event.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: dispatch-push-event
on:
push:

jobs:
search-dispatch-repo:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- { version: beta/v0.3.**, dispatch-repo: pilot-auto.x1.eve }
outputs:
dispatch-repo: ${{ steps.search-dispatch-repo.outputs.value }}
steps:
- name: Search dispatch repo
id: search-dispatch-repo
run: |
if [[ ${{ github.ref_name }} =~ ${{ matrix.version }} ]]; then
echo ::set-output name=value::"${{ matrix.dispatch-repo }}"
echo "Detected beta branch: ${{ github.ref_name }}"
echo "Dispatch repository: ${{ matrix.dispatch-repo }}"
fi
dispatch-push-event:
runs-on: ubuntu-latest
needs: search-dispatch-repo
if: ${{ needs.search-dispatch-repo.outputs.dispatch-repo != '' }}
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.INTERNAL_APP_ID }}
private_key: ${{ secrets.INTERNAL_PRIVATE_KEY }}

# 注意: workflow_dispatchで指定するブランチはmain固定となっているため、dispatch-repoのmainブランチにupdate-beta-branch.yamlが存在することが前提条件。
- name: Dispatch the update-beta-branch workflow
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ steps.generate-token.outputs.token }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/tier4/${{ needs.search-dispatch-repo.outputs.dispatch-repo }}/actions/workflows/update-beta-branch.yaml/dispatches \
-d '{"ref":"main"}'
46 changes: 46 additions & 0 deletions .github/workflows/dispatch-release-note.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: dispatch-release-note
on:
push:
branches:
- beta/v*
- tier4/main
tags:
- v*
workflow_dispatch:
inputs:
beta-branch-or-tag-name:
description: The name of the beta branch or tag to write release note
type: string
required: true
jobs:
dispatch-release-note:
runs-on: ubuntu-latest
name: release-repository-dispatch
steps:
- name: Set tag name
id: set-tag-name
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
REF_NAME="${{ github.event.inputs.beta-branch-or-tag-name }}"
else
REF_NAME="${{ github.ref_name }}"
fi
echo ::set-output name=ref-name::"$REF_NAME"
echo ::set-output name=tag-name::"${REF_NAME#beta/}"
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}

- name: Repository dispatch for release note
run: |
curl \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: token ${{ steps.generate-token.outputs.token }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/tier4/update-release-notes/dispatches" \
-d '{"event_type":"${{ steps.set-tag-name.outputs.ref-name }}"}'
25 changes: 25 additions & 0 deletions .github/workflows/slack-send.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: slack-send
on:
workflow_run:
workflows:
- build-and-test
types:
- completed

jobs:
on-failure:
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3

- name: Send to Slack workflow
uses: slackapi/slack-github-action@v1
with:
payload: |
{
"workflow-url": "${{ github.event.workflow_run.html_url }}"
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WORKFLOW_WEBHOOK_URL }}
26 changes: 26 additions & 0 deletions .github/workflows/sync-awf-latest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: sync-awf-latest

on:
schedule:
- cron: 50 */1 * * * # every 1 hour (**:50)
workflow_dispatch:

jobs:
sync-awf-latest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.TOKEN_TO_MODIFY_WOKFLOW }}
fetch-depth: 0
- name: Commit Results
run: |
git config --local user.email "[email protected]"
git config --local user.name "GitHub Action"
git checkout awf-latest
git remote add awf https://github.com/autowarefoundation/autoware.universe
git fetch awf main
git rebase awf/main
git push origin awf-latest --force
49 changes: 49 additions & 0 deletions .github/workflows/sync-upstream.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: sync-upstream

on:
workflow_dispatch:
inputs:
target_branch:
description: Target branch
required: true
type: string

jobs:
sync-upstream:
runs-on: ubuntu-latest
steps:
- name: Generate token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.PRIVATE_KEY }}

- uses: actions/setup-node@v3
with:
node-version: 16

- run: npm install @holiday-jp/holiday_jp

- uses: actions/github-script@v6
id: is-holiday
with:
script: |
const holiday_jp = require(`${process.env.GITHUB_WORKSPACE}/node_modules/@holiday-jp/holiday_jp`)
core.setOutput('holiday', holiday_jp.isHoliday(new Date()));
- name: Print warning for invalid branch name
if: ${{ inputs.target_branch == 'tier4/main' }}
run: |
echo This action cannot be performed on 'tier4/main' branch
- name: Run sync-branches
if: ${{ inputs.target_branch != 'tier4/main' }}
uses: autowarefoundation/autoware-github-actions/sync-branches@v1
with:
token: ${{ steps.generate-token.outputs.token }}
base-branch: ${{ inputs.target_branch }}
sync-pr-branch: sync-upstream
sync-target-repository: https://github.com/tier4/autoware.universe.git
sync-target-branch: awf-latest
pr-title: "chore: sync tier4/autoware.universe:awf-latest"
auto-merge-method: merge
94 changes: 94 additions & 0 deletions system/diagnostic_graph_aggregator/script/dump.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#!/usr/bin/env python3

# Copyright 2024 The Autoware Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse

from diagnostic_msgs.msg import DiagnosticStatus
import rclpy
import rclpy.node
from tier4_system_msgs.msg import DiagnosticGraph


def print_table(lines: list, header: list):
widths = [0 for _ in range(len(header))]
lines.insert(0, header)
for line in lines:
widths = map(max, widths, map(len, line))
widths = list(widths)
lines.insert(0, ["-" * w for w in widths])
lines.insert(2, ["-" * w for w in widths])
for line in lines:
line = map(lambda v, w: f"{v: {w}}", line, widths)
line = " | ".join(line)
print(f"| {line} |")


def get_level_text(level: int):
if level == DiagnosticStatus.OK:
return "OK"
if level == DiagnosticStatus.WARN:
return "WARN"
if level == DiagnosticStatus.ERROR:
return "ERROR"
if level == DiagnosticStatus.STALE:
return "STALE"
return "-----"


class NodeData:
def __init__(self, index, node):
self.index = index
self._node = node

@property
def level(self):
return get_level_text(self._node.status.level)

@property
def name(self):
return self._node.status.name

@property
def links(self):
return " ".join(str(link.index) for link in self._node.links)

@property
def line(self):
return [str(self.index), self.level, self.name, self.links]


class DumpNode(rclpy.node.Node):
def __init__(self, args):
super().__init__("dump_diagnostic_graph")
self.sub = self.create_subscription(DiagnosticGraph, args.topic, self.callback, 1)

def callback(self, msg):
nodes = [NodeData(index, node) for index, node in enumerate(msg.nodes)]
table = [node.line for node in nodes]
print_table(table, ["index", "level", "name", "links"])


if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--topic", default="/diagnostics_graph")
args, unparsed = parser.parse_known_args()

try:
rclpy.init(args=unparsed)
rclpy.spin(DumpNode(args))
rclpy.shutdown()
except KeyboardInterrupt:
pass

0 comments on commit 9f595a8

Please sign in to comment.