Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
56dd7bf
feat: improve usage table readability
yoshifuminakamura Apr 13, 2026
5c8f970
feat: improve estimated detail readability
yoshifuminakamura Apr 13, 2026
fba4efc
feat: improve result detail readability
yoshifuminakamura Apr 13, 2026
dd29ff1
feat: improve system list usability
yoshifuminakamura Apr 13, 2026
93d3544
feat: polish portal entry and auth pages
yoshifuminakamura Apr 13, 2026
ab101e5
feat: improve portal list readability
yoshifuminakamura Apr 13, 2026
f51a3e6
fix: simplify portal list table behavior
yoshifuminakamura Apr 13, 2026
da57971
feat: support qws Fugaku fapp profiling [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
7577d7a
fix: serve PA data from received_padata
yoshifuminakamura Apr 13, 2026
c5a04af
fix: restore PA data links in portal
yoshifuminakamura Apr 13, 2026
0b49721
fix: resolve PA data links from received_padata
yoshifuminakamura Apr 13, 2026
66efe89
feat: add leveled profiler metadata support [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
6d761e4
feat: show profiler summary in result detail [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
1f64bf1
fix: inject profiler summary during result upload [code:qws] [system:…
yoshifuminakamura Apr 13, 2026
32ec729
fix: read profiler metadata from archive members [code:qws] [system:F…
yoshifuminakamura Apr 13, 2026
1025db2
feat: surface profiler summaries in results portal
yoshifuminakamura Apr 13, 2026
aba822d
fix: refine profiler event wording
yoshifuminakamura Apr 13, 2026
6706108
chore: skip ci for profiler wording cleanup [skip-ci]
yoshifuminakamura Apr 13, 2026
01b3b52
feat: switch qws Fugaku profiling to simple [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
9ea613f
chore: log profiler repetitions for Fugaku debugging [code:qws] [syst…
yoshifuminakamura Apr 13, 2026
b40ecf3
fix: follow latest Fugaku stdout path for qws profiler runs [code:qws…
yoshifuminakamura Apr 13, 2026
59ec1ab
fix: separate qws Fugaku profiling from FOM runs [code:qws] [system:F…
yoshifuminakamura Apr 13, 2026
dcb1972
feat: switch qws Fugaku profiling to standard [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
6a53d74
feat: switch qws Fugaku profiling to detailed [code:qws] [system:Fugaku]
yoshifuminakamura Apr 13, 2026
bf0fa08
fix: keep portal tooltips visible
yoshifuminakamura Apr 14, 2026
ddf8dc4
fix: compact portal page headers
yoshifuminakamura Apr 14, 2026
a665e4d
feat: simplify result list profiler access
yoshifuminakamura Apr 14, 2026
d03cfe4
fix: compact profiler and CI columns
yoshifuminakamura Apr 14, 2026
53460f5
fix: compact profiler summary cell
yoshifuminakamura Apr 14, 2026
9164cce
refactor: split result loading responsibilities
yoshifuminakamura Apr 14, 2026
266f1a4
refactor: split result table partials
yoshifuminakamura Apr 14, 2026
8c9b998
refactor: make result table headers data-driven
yoshifuminakamura Apr 14, 2026
6287866
refactor: simplify estimated result table rendering
yoshifuminakamura Apr 14, 2026
bcef11b
refactor: share portal table page helpers
yoshifuminakamura Apr 14, 2026
0e9377f
refactor: extract usage query helpers
yoshifuminakamura Apr 14, 2026
1c47c4f
refactor: split usage report sections
yoshifuminakamura Apr 14, 2026
006b2d3
refactor: compact estimated result table
yoshifuminakamura Apr 14, 2026
5e433e3
refactor: move result detail display logic to view model
yoshifuminakamura Apr 14, 2026
1b60d2f
refactor: move result compare display logic to view model
yoshifuminakamura Apr 14, 2026
8c2828d
refactor: share route table page builders
yoshifuminakamura Apr 14, 2026
5b73df3
refactor: share result file access helpers
yoshifuminakamura Apr 14, 2026
045c1e9
fix: support Python 3.9 annotations in result file helpers
yoshifuminakamura Apr 14, 2026
a219457
refactor: streamline portal session and compare helpers
yoshifuminakamura Apr 14, 2026
9ce03ac
ci: skip benchmark pipeline for result_server changes [skip-ci]
yoshifuminakamura Apr 14, 2026
18fa2b5
refactor: build usage page from view model
yoshifuminakamura Apr 14, 2026
046fd3e
refactor: split portal result route modules
yoshifuminakamura Apr 14, 2026
bfe65e8
refactor: share portal table and test helpers
yoshifuminakamura Apr 14, 2026
ef4d368
refactor: simplify portal detail helpers and tests
yoshifuminakamura Apr 14, 2026
acce184
refactor: extract portal table filter helpers
yoshifuminakamura Apr 14, 2026
850de85
refactor: share portal test app builders
yoshifuminakamura Apr 14, 2026
cc9b09a
refactor: share api and estimated test shells
yoshifuminakamura Apr 14, 2026
5ccdbcf
refactor: share result display formatting helpers
yoshifuminakamura Apr 14, 2026
96168ba
refactor: streamline result comparison and estimate detail templates
yoshifuminakamura Apr 14, 2026
b3325a6
refactor: align result detail with shared portal layout
yoshifuminakamura Apr 14, 2026
0991f13
refactor: share portal detail table templates
yoshifuminakamura Apr 14, 2026
e8207e5
refactor: streamline portal app configuration
yoshifuminakamura Apr 14, 2026
0ecbb95
refactor: clean portal navigation and totp helpers
yoshifuminakamura Apr 14, 2026
b422559
refactor: clean portal dev launcher
yoshifuminakamura Apr 14, 2026
890032f
refactor: compact portal filters and usage tables
yoshifuminakamura Apr 14, 2026
4d2e6ba
refactor: reduce inline portal table styles
yoshifuminakamura Apr 14, 2026
b826e0d
refactor: unify portal page shells
yoshifuminakamura Apr 14, 2026
7ff14d8
refactor: simplify portal home shell
yoshifuminakamura Apr 14, 2026
7bf7610
fix: simplify portal page headers
yoshifuminakamura Apr 14, 2026
81495ce
refactor: trim estimated table route wiring
yoshifuminakamura Apr 14, 2026
189788b
refactor: simplify compare and admin view helpers
yoshifuminakamura Apr 14, 2026
49ba7f7
refactor: share portal detail page styles
yoshifuminakamura Apr 14, 2026
bd18884
refactor: derive compare chart labels from result data
yoshifuminakamura Apr 14, 2026
565514c
refactor: inline estimated list page builder
yoshifuminakamura Apr 14, 2026
1908137
refactor: prune portal list helper wrappers
yoshifuminakamura Apr 14, 2026
bf4389f
refactor: remove single-use portal helpers
yoshifuminakamura Apr 14, 2026
66fbb37
refactor: trim portal helper indirection
yoshifuminakamura Apr 14, 2026
296bfaf
refactor: remove deprecated result ingest routes
yoshifuminakamura Apr 15, 2026
a8bab05
chore: align utf-8 text encoding defaults
yoshifuminakamura Apr 15, 2026
6f1b372
docs+compat: align README and py39 hints [system:MiyabiG] [code:qws]
yoshifuminakamura Apr 16, 2026
d2aae76
chore: remove kiro and vscode workspace files
yoshifuminakamura Apr 16, 2026
a45468f
docs: move developer reference out of README
yoshifuminakamura Apr 16, 2026
46984b2
feat: retain estimate source provenance metadata
yoshifuminakamura Apr 16, 2026
4258852
feat: retain side-specific estimate provenance [code:qws] [system:Miy…
yoshifuminakamura Apr 16, 2026
2eb00eb
feat: retain estimate pipeline provenance [code:qws] [system:MiyabiG]
yoshifuminakamura Apr 16, 2026
9ff087a
feat: enrich re-estimation context [code:qws] [system:MiyabiG]
yoshifuminakamura Apr 16, 2026
674b8d6
Add result_server test workflow and CI
yoshifuminakamura Apr 16, 2026
65681e3
Improve estimated results and usage diagnostics
yoshifuminakamura Apr 16, 2026
d5dd008
Add result quality validator and policy hooks
yoshifuminakamura Apr 16, 2026
10fa89f
Fix result server CI coverage and compatibility checks
yoshifuminakamura Apr 16, 2026
49a7433
Add BSD license and repository history notes
yoshifuminakamura Apr 17, 2026
ffb32fe
Add DCO contribution guidelines
yoshifuminakamura Apr 20, 2026
2ae99cd
Merge pull request #13 from RIKEN-RCCS/future/add-dco-guidelines
yoshifuminakamura Apr 20, 2026
eeb631d
Add contributing guide link to README
yoshifuminakamura Apr 20, 2026
7a67b94
Merge pull request #14 from RIKEN-RCCS/feature/add-readme-contributin…
yoshifuminakamura Apr 20, 2026
5992a52
Add GitLab PR CI bridge
yoshifuminakamura Apr 20, 2026
95b22b2
Switch GitLab CI to manual execution
yoshifuminakamura Apr 20, 2026
15654d9
Merge pull request #17 from RIKEN-RCCS/feature/ci
yoshifuminakamura Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
# Default: let Git normalize line endings
* text=auto

# Common text files should stay LF in the repository
*.md text eol=lf
*.html text eol=lf
*.css text eol=lf
*.js text eol=lf
*.toml text eol=lf
*.txt text eol=lf

# Shell scripts must use LF (executed on Linux CI)
*.sh text eol=lf

Expand Down
176 changes: 176 additions & 0 deletions .github/workflows/gitlab-manual-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
name: GitLab Manual CI

on:
workflow_dispatch:
inputs:
target_ref:
description: "Branch, tag, or SHA in this repository to test"
required: true
default: "develop"
code:
description: "BenchKit code filter, for example: qws,genesis"
required: false
system:
description: "System filter, for example: FugakuLN,MiyabiG"
required: false
app:
description: "BenchPark app filter, for example: osu-micro-benchmarks"
required: false
benchpark:
description: "Run the BenchPark path together with BenchKit"
required: false
type: boolean
default: false
park_only:
description: "Run only the BenchPark path"
required: false
type: boolean
default: false
park_send:
description: "Run the BenchPark send-only path"
required: false
type: boolean
default: false

concurrency:
group: gitlab-manual-ci-${{ github.run_id }}
cancel-in-progress: false

permissions:
contents: read

jobs:
gitlab-manual-ci:
name: Run GitLab CI manually
runs-on: ubuntu-latest
steps:
- name: Check out target ref
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ inputs.target_ref }}

- name: Push target ref to GitLab test branch
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
TARGET_REF: ${{ inputs.target_ref }}
run: |
set -euo pipefail

if [ -z "${GITLAB_TOKEN}" ] || [ -z "${GITLAB_REPO}" ]; then
echo "GITLAB_TOKEN and GITLAB_REPO secrets are required."
exit 1
fi

branch="github/manual-${GITHUB_RUN_ID}"
echo "GITLAB_TEST_BRANCH=${branch}" >> "${GITHUB_ENV}"

echo "Testing GitHub ref: ${TARGET_REF}"
echo "Temporary GitLab branch: ${branch}"

git config user.name "github-bot"
git config user.email "bot@example.com"
git remote add gitlab "https://oauth2:${GITLAB_TOKEN}@${GITLAB_REPO}"
git push -o ci.skip gitlab "HEAD:refs/heads/${branch}" --force

- name: Trigger and wait for GitLab pipeline
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
GITLAB_TEST_BRANCH: ${{ env.GITLAB_TEST_BRANCH }}
CODE_FILTER: ${{ inputs.code }}
SYSTEM_FILTER: ${{ inputs.system }}
BENCHPARK_APP: ${{ inputs.app }}
BENCHPARK: ${{ inputs.benchpark }}
PARK_ONLY: ${{ inputs.park_only }}
PARK_SEND: ${{ inputs.park_send }}
run: |
set -euo pipefail

repo="${GITLAB_REPO#https://}"
repo="${repo#http://}"
host="${repo%%/*}"
project_path="${repo#*/}"
project_path="${project_path%.git}"

project_encoded="$(PROJECT_PATH="${project_path}" python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ["PROJECT_PATH"], safe=""))')"
api="https://${host}/api/v4/projects/${project_encoded}/pipeline"

curl_args=(
--fail
--silent
--request POST
--header "PRIVATE-TOKEN: ${GITLAB_TOKEN}"
--form "ref=${GITLAB_TEST_BRANCH}"
)

var_index=0
add_variable() {
local key="$1"
local value="$2"
if [ -n "${value}" ]; then
echo "GitLab variable: ${key}=${value}"
curl_args+=(--form "variables[${var_index}][key]=${key}")
curl_args+=(--form "variables[${var_index}][value]=${value}")
var_index=$((var_index + 1))
fi
}

add_variable "code" "${CODE_FILTER}"
add_variable "system" "${SYSTEM_FILTER}"
add_variable "app" "${BENCHPARK_APP}"

if [ "${BENCHPARK}" = "true" ]; then
add_variable "benchpark" "true"
fi
if [ "${PARK_ONLY}" = "true" ]; then
add_variable "park_only" "true"
fi
if [ "${PARK_SEND}" = "true" ]; then
add_variable "park_send" "true"
fi

response="$(curl "${curl_args[@]}" "${api}")"
pipeline_id="$(PIPELINE="${response}" python3 -c 'import json, os; print(json.loads(os.environ["PIPELINE"])["id"])')"
pipeline_url="$(PIPELINE="${response}" python3 -c 'import json, os; print(json.loads(os.environ["PIPELINE"]).get("web_url", ""))')"

echo "GitLab pipeline: ${pipeline_url}"
pipeline_api="https://${host}/api/v4/projects/${project_encoded}/pipelines/${pipeline_id}"

for _ in $(seq 1 180); do
response="$(curl --fail --silent --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" "${pipeline_api}")"
status="$(PIPELINE="${response}" python3 -c 'import json, os; print(json.loads(os.environ["PIPELINE"])["status"])')"

echo "GitLab pipeline status: ${status}"
case "${status}" in
success)
exit 0
;;
failed|canceled|skipped)
exit 1
;;
manual)
echo "GitLab pipeline is waiting for manual action."
exit 1
;;
esac

sleep 20
done

echo "Timed out waiting for GitLab pipeline ${pipeline_id}."
exit 1

- name: Delete GitLab test branch
if: always()
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
GITLAB_TEST_BRANCH: ${{ env.GITLAB_TEST_BRANCH }}
run: |
set -euo pipefail
if [ -n "${GITLAB_TEST_BRANCH:-}" ]; then
git remote add gitlab-cleanup "https://oauth2:${GITLAB_TOKEN}@${GITLAB_REPO}" || true
git push gitlab-cleanup --delete "${GITLAB_TEST_BRANCH}" || true
fi
23 changes: 23 additions & 0 deletions .github/workflows/guard-main-pr-source.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Guard main PR source

on:
pull_request:
branches:
- main

jobs:
guard-main-pr-source:
name: Require upstream develop for main PRs
runs-on: ubuntu-latest
steps:
- name: Allow only upstream develop to target main
run: |
if [ "${{ github.head_ref }}" != "develop" ] || \
[ "${{ github.event.pull_request.head.repo.full_name }}" != "${{ github.repository }}" ]; then
echo "Pull requests to main are only allowed from the upstream develop branch."
echo "Head repository: ${{ github.event.pull_request.head.repo.full_name }}"
echo "Head branch: ${{ github.head_ref }}"
exit 1
fi

echo "Pull request source is upstream develop."
53 changes: 53 additions & 0 deletions .github/workflows/result-server-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Result Server Tests

on:
pull_request:
paths:
- "result_server/**"
- "scripts/test_result_server.py"
- "scripts/validate_result_quality.py"
- "scripts/result_server/send_results.sh"
- "config/result_quality_policy.json"
- "requirements-result-server.txt"
- ".github/workflows/result-server-tests.yml"
push:
branches:
- "**"
paths:
- "result_server/**"
- "scripts/test_result_server.py"
- "scripts/validate_result_quality.py"
- "scripts/result_server/send_results.sh"
- "config/result_quality_policy.json"
- "requirements-result-server.txt"
- ".github/workflows/result-server-tests.yml"
workflow_dispatch:

jobs:
pytest:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.12"

steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: requirements-result-server.txt

- name: Install result_server test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-result-server.txt

- name: Run result_server pytest suite
run: python scripts/test_result_server.py
17 changes: 10 additions & 7 deletions .github/workflows/sync-to-gitlab.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Sync all branches to GitLab
name: Sync protected branches to GitLab

on:
push:
branches:
- '**' # 全ブランチを対象にする
- develop
- main
workflow_dispatch:

jobs:
Expand All @@ -12,16 +13,18 @@ jobs:
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # 全ブランチとタグを取得
fetch-depth: 0

- name: Push all branches and tags to GitLab
- name: Push protected branches and tags to GitLab
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
GITLAB_REPO: ${{ secrets.GITLAB_REPO }}
run: |
set -euo pipefail

git config user.name "github-bot"
git config user.email "bot@example.com"
git remote add gitlab https://oauth2:${GITLAB_TOKEN}@${GITLAB_REPO}
# 全ブランチ・タグを強制同期
git push gitlab --all --force
git push gitlab --tags --force
git fetch origin +refs/heads/develop:refs/remotes/origin/develop +refs/heads/main:refs/remotes/origin/main
git push -o ci.skip gitlab refs/remotes/origin/develop:refs/heads/develop refs/remotes/origin/main:refs/heads/main --force
git push -o ci.skip gitlab --tags --force
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ result_server/config/allowed_emails.json
# Flask session files
result_server/flask_session/

# Local audit workspace
audit/

# editor backup files and caches
*~
*.bak
*.pyc
*.pyc
12 changes: 3 additions & 9 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
#
# Files that automatically skip CI:
# - README.md, ADD_APP.md (documentation)
# - result_server/templates/*.html (web templates)
# - .kiro/**/* (Kiro configuration)
# - .vscode/**/* (VSCode settings)
# - result_server/**/* (portal/server code and templates)
#
# Important Notes:
# - trigger_child_pipeline depends on generate_matrix, so we use needs: optional: true
Expand Down Expand Up @@ -96,9 +94,7 @@ generate_matrix:
when: always
- changes:
- "*.md"
- "result_server/templates/*.html"
- ".kiro/**/*"
- ".vscode/**/*"
- "result_server/**/*"
when: never
- when: always

Expand Down Expand Up @@ -133,9 +129,7 @@ trigger_child_pipeline:
when: always
- changes:
- "*.md"
- "result_server/templates/*.html"
- ".kiro/**/*"
- ".vscode/**/*"
- "result_server/**/*"
when: never
- when: always
# BenchPark Monitor Jobs
Expand Down
1 change: 0 additions & 1 deletion .kiro/specs/api-restructure/.config.kiro

This file was deleted.

Loading
Loading