From 20195ef8429000d1079b511e76f6bf97d43ee175 Mon Sep 17 00:00:00 2001 From: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> Date: Tue, 13 Dec 2022 10:57:52 +0100 Subject: [PATCH] [ci] use external repo for check-labels (#1985) * [ci] use external repo for check-labels * remove ruled_labels specs, docs * remove repo checkout * remove checkout action * remove old gha --- .github/workflows/check-D-labels.yml | 14 +- .github/workflows/check-label-rules.yaml | 30 --- .github/workflows/check-labels-old.yml | 26 --- .github/workflows/check-labels.yml | 14 +- CODEOWNERS | 4 +- docs/documentation.md | 93 +-------- scripts/ci/ruled_labels/specs.yaml | 248 ----------------------- scripts/ci/ruled_labels/test.sh | 11 - scripts/ci/ruled_labels/tests.yaml | 39 ---- 9 files changed, 11 insertions(+), 468 deletions(-) delete mode 100644 .github/workflows/check-label-rules.yaml delete mode 100644 .github/workflows/check-labels-old.yml delete mode 100644 scripts/ci/ruled_labels/specs.yaml delete mode 100755 scripts/ci/ruled_labels/test.sh delete mode 100644 scripts/ci/ruled_labels/tests.yaml diff --git a/.github/workflows/check-D-labels.yml b/.github/workflows/check-D-labels.yml index 711840a4c8e..222c916fb6e 100644 --- a/.github/workflows/check-D-labels.yml +++ b/.github/workflows/check-D-labels.yml @@ -10,13 +10,6 @@ jobs: check-labels: runs-on: ubuntu-latest steps: - - name: Checkout sources - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Pull image env: IMAGE: paritytech/ruled_labels:0.3.2 @@ -30,12 +23,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} API_BASE: https://api.github.com/repos REPO: ${{ github.repository }} - RULES_PATH: scripts/ci/ruled_labels - CHECK_SPECS: specs.yaml + RULES_PATH: labels/ruled_labels + CHECK_SPECS: specs_cumulus.yaml run: | echo "REPO: ${REPO}" echo "GITHUB_PR: ${GITHUB_PR}" - + # Clone repo with labels specs + git clone https://github.com/paritytech/labels # Fetch the labels for the PR under test labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",") diff --git a/.github/workflows/check-label-rules.yaml b/.github/workflows/check-label-rules.yaml deleted file mode 100644 index c744a71946b..00000000000 --- a/.github/workflows/check-label-rules.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: Check label Rules - -on: - push: - paths: - - scripts/ci/ruled_labels/** - -jobs: - check-label-rules: - runs-on: ubuntu-latest - steps: - - name: Checkout sources - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{ github.event.pull_request.head.repo.full_name }} - - - name: Pull image - env: - IMAGE: paritytech/ruled_labels:0.3.2 - run: docker pull $IMAGE - - - name: Check label Rules - env: - IMAGE: paritytech/ruled_labels:0.3.2 - MOUNT: /work - RULES_PATH: scripts/ci/ruled_labels - run: | - docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE test ${MOUNT}/tests.yaml diff --git a/.github/workflows/check-labels-old.yml b/.github/workflows/check-labels-old.yml deleted file mode 100644 index 053cc5f7cf0..00000000000 --- a/.github/workflows/check-labels-old.yml +++ /dev/null @@ -1,26 +0,0 @@ -# disabled in favor of ruled_labels tool -# name: Check labels - -# on: -# pull_request: -# types: [labeled, opened, synchronize, unlabeled] - - -# jobs: -# check-labels: -# runs-on: ubuntu-latest -# steps: -# - name: Checkout sources -# uses: actions/checkout@v3 -# with: -# fetch-depth: 0 -# ref: ${{ github.event.pull_request.head.ref }} -# repository: ${{ github.event.pull_request.head.repo.full_name }} -# - name: Check labels -# run: bash ${{ github.workspace }}/scripts/ci/github/check_labels.sh -# env: -# GITHUB_PR: ${{ github.event.pull_request.number }} -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# HEAD_SHA: ${{ github.event.pull_request.head.sha }} -# BASE_SHA: ${{ github.event.pull_request.base.sha }} - diff --git a/.github/workflows/check-labels.yml b/.github/workflows/check-labels.yml index e1cdf33832e..f524dad13d0 100644 --- a/.github/workflows/check-labels.yml +++ b/.github/workflows/check-labels.yml @@ -8,13 +8,6 @@ jobs: check-labels: runs-on: ubuntu-latest steps: - - name: Checkout sources - uses: actions/checkout@v3 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{ github.event.pull_request.head.repo.full_name }} - - name: Pull image env: IMAGE: paritytech/ruled_labels:0.3.2 @@ -28,12 +21,13 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} API_BASE: https://api.github.com/repos REPO: ${{ github.repository }} - RULES_PATH: scripts/ci/ruled_labels - CHECK_SPECS: specs.yaml + RULES_PATH: labels/ruled_labels + CHECK_SPECS: specs_cumulus.yaml run: | echo "REPO: ${REPO}" echo "GITHUB_PR: ${GITHUB_PR}" - + # Clone repo with labels specs + git clone https://github.com/paritytech/labels # Fetch the labels for the PR under test labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",") diff --git a/CODEOWNERS b/CODEOWNERS index bae050d50c3..3e5e8bd062d 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -17,7 +17,7 @@ # - The latest matching rule, if multiple, takes precedence. # CI -/.github/ @paritytech/ci @chevdor +/.github/ @paritytech/ci @paritytech/release-engineering /.gitlab-ci.yml @paritytech/ci -/scripts/ci/ @paritytech/ci @chevdor +/scripts/ci/ @paritytech/ci @paritytech/release-engineering diff --git a/docs/documentation.md b/docs/documentation.md index b3e80366c6b..383f7ff3c40 100644 --- a/docs/documentation.md +++ b/docs/documentation.md @@ -1,92 +1 @@ - - -This is the documentation for the repo `paritytech/cumulus`. - -It contains 65 labels: - -### A Labels: Action labels, used with GHA and trigger a certain process -- `A0-please_review`: *Pull request needs code review.* -- `A1-needs_burnin`: *Pull request needs to be tested on a live validator node before merge. DevOps is notified via matrix* -- `A2-insubstantial`: *Pull request requires no code review (e.g., a sub-repository hash update).* -- `A3-in_progress`: *Pull request is in progress. No review needed at this stage.* -- `A4-companion`: *A PR that should be considered alongside another (usually more comprehensive and detailed) PR.* -- `A5-stale`: *Pull request did not receive any updates in a long time. No review needed at this stage. Close it.* -- `A6-backport`: *Pull request is already reviewed well in another branch.* - -### B labels: Release note labels, to be used in combination with a T* label -- `B0-silent`: *Changes should not be mentioned in any release notes* -- `B1-note_worthy`: *Changes should be noted in the release notes* - -### C labels: Criticality - how critical is this change? Which impact does it have on the builders? To be used in combination with a T* label -- `C1-low`: *PR touches the given topic and has a low impact on builders.* -- `C3-medium`: *PR touches the given topic and has a medium impact on builders.* -- `C5-high`: *PR touches the given topic and has a high impact on builders.* -- `C7-critical`: *PR touches the given topic and has a critical impact on builders.* - -### D labels: Auditing labels, optional for cumulus -- `D1-audited 👍`: *PR contains changes to fund-managing logic that has been properly reviewed and externally audited.* -- `D2-notlive 💤`: *PR contains changes in a runtime directory that is not deployed to a chain that requires an audit.* -- `D3-trivial 🧸`: *PR contains trivial changes in a runtime directory that do not require an audit* -- `D5-nicetohaveaudit ⚠️`: *PR contains trivial changes to logic that should be properly reviewed.* -- `D9-needsaudit 👮`: *PR contains changes to fund-managing logic that should be properly reviewed and externally audited* - -### E labels: Upgrade dependencies -- `E0-runtime_migration`: *PR introduces code that might require downstream chains to run a runtime upgrade.* -- `E1-database_migration`: *PR introduces code that does a one-way migration of the database.* -- `E2-dependencies`: *Pull requests that update a dependency file.* -- `E3-host_functions`: *PR adds new host functions which requires a node release before a runtime upgrade.* -- `E4-node_first_update`: *This is a runtime change that will require all nodes to be update BEFORE the runtime upgrade.* - -### F labels: Fail - change breaks some part of the code -- `F0-breaks_everything`: *This change breaks the underlying networking, sync or related and thus will cause a fork.* -- `F1-breaks_authoring`: *This change breaks authorities or authoring code.* -- `F2-breaks_consensus`: *This change breaks consensus or consensus code.* -- `F3-breaks_API`: *This PR changes public API; next release should be major.* - -### I labels: Issue related labels -- `I0-consensus`: *Issue can lead to a consensus failure.* -- `I1-panic`: *The node panics and exits without proper error handling.* -- `I2-security`: *The node fails to follow expected, security-sensitive, behaviour.* -- `I3-bug`: *The node fails to follow expected behavior.* -- `I4-annoyance`: *The node behaves within expectations, however this “expected behaviour” itself is at issue.* -- `I5-tests`: *Tests need fixing, improving or augmenting.* -- `I6-documentation`: *Documentation needs fixing, improving or augmenting.* -- `I7-refactor`: *Code needs refactoring.* -- `I8-footprint`: *An enhancement to provide a smaller (system load, memory, network or disk) footprint.* -- `I9-optimisation`: *An enhancement to provide better overall performance in terms of time-to-completion for a task.* - -### J labels: Just a continuation of the issue related labels -- `J0-enhancement`: *An additional feature request.* -- `J1-meta`: *A specific issue for grouping tasks or bugs of a specific category.* -- `J2-unconfirmed`: *Issue might be valid, but it's not yet known.* -- `J3-intended`: *Issue describes a behavior which turns out to work as intended. Closer should explain why.* -- `J4-duplicate`: *Issue is a duplicate. Closer should comment with a link to the duplicate.* -- `J5-wont_fix`: *Issue is in principle valid, but this project will not address it. Closer should explain why.* -- `J6-invalid`: *Issue is invalid. Closer should comment why.* - -### S labels: Status of an issue -- `S0-design`: *Issue is in the design stage.* -- `S1-implement`: *Issue is in the implementation stage.* -- `S2-test/monitor`: *Issue is in the testing stage.* -- `S3-deploy`: *Issue is in the deployment stage* -- `S4-blocked`: *Issue is blocked, see comments for further information.* - -### T labels: Topics - to be used in combination with other labels -- `T0-node`: *This PR/Issue is related to the topic “node”.* -- `T1-runtime`: *This PR/Issue is related to the topic “runtime”.* -- `T10-release`: *This PR/Issue is related to topics touching the release notes.* -- `T2-API`: *This PR/Issue is related to APIs.* -- `T3-relay_chain`: *This PR/Issue is related to the relay chain.* -- `T4-smart_contracts`: *This PR/Issue is related to smart contracts.* -- `T5-parachains`: *This PR/Issue is related to Parachains.* -- `T6-XCM`: *This PR/Issue is related to XCM.* -- `T7-statemint`: *This PR/Issue is related to Statemint* -- `T7-substrate`: *This is an issue that needs to be implemented upstream in Substrate.* -- `T8-CGP`: *This PR/Issue is related to Common Good Parachains.* - -### U labels: Urgency - in what time manner does this issue need to be resolved? -- `U0-drop_everything`: *Everyone should address the issue now.* -- `U1-asap`: *No need to stop dead in your tracks, however issue should be addressed as soon as possible.* -- `U2-some_time_soon`: *Issue is worth doing soon.* -- `U3-nice_to_have`: *Issue is worth doing eventually.* -- `U4-some_day_maybe`: *Issue might be worth doing eventually.* +Was moved [here](https://github.com/paritytech/labels/blob/main/docs/doc_cumulus.md) \ No newline at end of file diff --git a/scripts/ci/ruled_labels/specs.yaml b/scripts/ci/ruled_labels/specs.yaml deleted file mode 100644 index 25355dfdf16..00000000000 --- a/scripts/ci/ruled_labels/specs.yaml +++ /dev/null @@ -1,248 +0,0 @@ ---- -name: paritytech/cumulus -description: Import from paritytech/cumulus -version: 0.0.1 -labels: - - name: A0-please_review - description: Pull request needs code review. - color: "666666" - - name: A1-needs_burnin - description: Pull request needs to be tested on a live validator node before merge. DevOps is notified via matrix - color: c7def8 - - name: A2-insubstantial - description: "Pull request requires no code review (e.g., a sub-repository hash update)." - color: C6C7F8 - - name: A3-in_progress - description: Pull request is in progress. No review needed at this stage. - color: DBC6F8 - - name: A4-companion - description: A PR that should be considered alongside another (usually more comprehensive and detailed) PR. - color: F8C5E7 - - name: A5-stale - description: Pull request did not receive any updates in a long time. No review needed at this stage. Close it. - color: F2C5F8 - - name: A6-backport - description: Pull request is already reviewed well in another branch. - color: F8C5E7 - - name: B0-silent - description: Changes should not be mentioned in any release notes - color: F8C4D0 - - name: B1-note_worthy - description: Changes should be noted in the release notes - color: f9d0c4 - - name: C1-low - description: "PR touches the given topic and has a low impact on builders." - color: EBF7B3 - - name: C3-medium - description: "PR touches the given topic and has a medium impact on builders.." - color: FEF2C0 - - name: C5-high - description: "PR touches the given topic and has a high impact on builders." - color: D4C5F9 - - name: C7-critical - description: "PR touches the given topic and has a critical impact on builders." - color: E99695 - - name: D1-audited 👍 - description: PR contains changes to fund-managing logic that has been properly reviewed and externally audited. - color: C0E7CC - - name: D2-notlive 💤 - description: PR contains changes in a runtime directory that is not deployed to a chain that requires an audit. - color: C209B4 - - name: D3-trivial 🧸 - description: PR contains trivial changes in a runtime directory that do not require an audit - color: 5EDFEE - - name: D5-nicetohaveaudit ⚠️ - description: PR contains trivial changes to logic that should be properly reviewed. - color: c5def5 - - name: D9-needsaudit 👮 - description: PR contains changes to fund-managing logic that should be properly reviewed and externally audited - color: C3EDC0 - - name: E0-runtime_migration - description: PR introduces code that might require downstream chains to run a runtime upgrade. - color: c2e0c6 - - name: E1-database_migration - description: PR introduces code that does a one-way migration of the database. - color: f4f5f9 - - name: E2-dependencies - description: Pull requests that update a dependency file. - color: f2f9f2 - - name: E3-host_functions - description: PR adds new host functions which requires a node release before a runtime upgrade. - color: f9f2f2 - - name: E4-node_first_update - description: This is a runtime change that will require all nodes to be update BEFORE the runtime upgrade. - color: e8d7d7 - - name: F0-breaks_everything - description: "This change breaks the underlying networking, sync or related and thus will cause a fork." - color: bdadad - - name: F1-breaks_authoring - description: This change breaks authorities or authoring code. - color: e99695 - - name: F2-breaks_consensus - description: This change breaks consensus or consensus code. - color: "5319e7" - - name: F3-breaks_API - description: This PR changes public API; next release should be major. - color: cdadad - - name: I0-consensus - description: Issue can lead to a consensus failure. - color: f6d9e9 - - name: I1-panic - description: The node panics and exits without proper error handling. - color: 17b25d - - name: I2-security - description: "The node fails to follow expected, security-sensitive, behaviour." - color: d93f0b - - name: I3-bug - description: The node fails to follow expected behavior. - color: "249899" - - name: I4-annoyance - description: "The node behaves within expectations, however this “expected behaviour” itself is at issue." - color: D6075D - - name: I5-tests - description: "Tests need fixing, improving or augmenting." - color: 6C9C98 - - name: I6-documentation - description: "Documentation needs fixing, improving or augmenting." - color: f48a75 - - name: I7-refactor - description: Code needs refactoring. - color: 0075ca - - name: I8-footprint - description: "An enhancement to provide a smaller (system load, memory, network or disk) footprint." - color: "000000" - - name: I9-optimisation - description: An enhancement to provide better overall performance in terms of time-to-completion for a task. - color: c5def5 - - name: J0-enhancement - description: An additional feature request. - color: c2e0c6 - - name: J1-meta - description: A specific issue for grouping tasks or bugs of a specific category. - color: a2eeef - - name: J2-unconfirmed - description: "Issue might be valid, but it's not yet known." - color: "000000" - - name: J3-intended - description: Issue describes a behavior which turns out to work as intended. Closer should explain why. - color: b10d11 - - name: J4-duplicate - description: Issue is a duplicate. Closer should comment with a link to the duplicate. - color: D62209 - - name: J5-wont_fix - description: "Issue is in principle valid, but this project will not address it. Closer should explain why." - color: FB3701 - - name: J6-invalid - description: Issue is invalid. Closer should comment why. - color: F76E02 - - name: S0-design - description: Issue is in the design stage. - color: f3a603 - - name: S1-implement - description: Issue is in the implementation stage. - color: fbca04 - - name: S2-test/monitor - description: Issue is in the testing stage. - color: dbea04 - - name: S3-deploy - description: Issue is in the deployment stage - color: 34C302 - - name: S4-blocked - description: "Issue is blocked, see comments for further information." - color: "122381" - - name: T3-relay_chain - description: This PR/Issue is related to the relay chain. - color: ffeeee - - name: T4-smart_contracts - description: This PR/Issue is related to smart contracts. - color: 0C7BAD - - name: T5-parachains - description: This PR/Issue is related to Parachains. - color: 0052cc - - name: T10-release - description: This PR/Issue is related to topics touching the release notes. - color: 0052cc - - name: T7-statemint - description: This PR/Issue is related to Statemint - color: 86e62a - - name: T8-CGP - description: This PR/Issue is related to Common Good Parachains. - color: BFDADC - - name: T6-XCM - description: This PR/Issue is related to XCM. - color: d4c5f9 - - name: T9-substrate - description: This is an issue that needs to be implemented upstream in Substrate. - color: 1d76db - - name: U0-drop_everything - description: Everyone should address the issue now. - color: "5319e7" - - name: U1-asap - description: "No need to stop dead in your tracks, however issue should be addressed as soon as possible." - color: fff4ed - - name: U2-some_time_soon - description: Issue is worth doing soon. - color: b60205 - - name: U3-nice_to_have - description: Issue is worth doing eventually. - color: FFF7ED - - name: U4-some_day_maybe - description: Issue might be worth doing eventually. - color: fffbed - - name: T0-node - description: This PR/Issue is related to the topic “node”. - color: fbffe0 - - name: T1-runtime - description: This PR/Issue is related to the topic “runtime”. - color: F5FCE6 - - name: T2-API - description: This PR/Issue is related to APIs. - color: 009B40 - -rules: - - name: Require a single Release (B) label - id: single_b - tags: [PR] - spec: - require: !one_of [B*] - - - name: Release mentions need criticality (C) - id: require_one_c_when_b1 - tags: [PR] - spec: - when: !one_of [B1] - require: !one_of [C*] - - - name: Release mentions need a topic (T) - id: require_one_t_when_b1 - tags: [PR] - spec: - when: !one_of [B1] - require: !one_of [T*] - - - name: One single issue status (S) label allowed - id: single_s - tags: - spec: - when: !some_of [S*] - require: !one_of [S*] - - - name: One single urgency status (U) label allowed - id: single_u - tags: - spec: - when: !some_of [U*] - require: !one_of [U*] - - - name: One single criticality (C) label allowed - id: single_c - tags: [PR] - spec: - when: !some_of [C*] - require: !one_of [C*] - - - name: Require single audit (D) label allowed - id: single_d - tags: [audit] - spec: - require: !one_of [D*] diff --git a/scripts/ci/ruled_labels/test.sh b/scripts/ci/ruled_labels/test.sh deleted file mode 100755 index 200f0927330..00000000000 --- a/scripts/ci/ruled_labels/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(dirname -- "$0") -unset RUST_LOG - -pushd "$DIR" > /dev/null - -ruled-labels --version -ruled-labels test - -popd > /dev/null diff --git a/scripts/ci/ruled_labels/tests.yaml b/scripts/ci/ruled_labels/tests.yaml deleted file mode 100644 index f7c1e4fae7e..00000000000 --- a/scripts/ci/ruled_labels/tests.yaml +++ /dev/null @@ -1,39 +0,0 @@ -name: Cumulus ruled-labels test cases -spec_file: specs.yaml - -specs: - - name: Pass - Pass all - filter: - id: [ single_b, single_d, single_u, single_s] - labels: [ B1, C1, D1, X1, T4 ] - expected: true - - - name: Fail - Require release label - filter: - id: [ single_b ] - labels: [ A1 ] - expected: false - - - name: Fail - Only one audit label allowed - filter: - id: [ single_d ] - labels: [ D1, B1, D4 ] - expected: false - - - name: Fail - Release need criticality - filter: - id: [ require_one_c_when_b1 ] - labels: [ B1, T1, D1 ] - expected: false - - - name: Fail - Release require one T topics - filter: - id: [ require_one_t_when_b1 ] - labels: [ B1, D1 ] - expected: false - - - name: Fail - Only one criticality label allowed - filter: - id: [ single_c ] - labels: [ B1, C1, C3 ] - expected: false