mirror of https://github.com/apache/cloudstack.git
[CI] Create reusable pre-commit workflows
This commit is contained in:
parent
3bd5410f9a
commit
f57cf4a13f
|
|
@ -0,0 +1,35 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you 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.
|
||||
|
||||
name: pre-commit
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
run:
|
||||
name: Run manual hooks
|
||||
uses: ./.github/workflows/pre-commit-reusable.yml
|
||||
with:
|
||||
job_id: 'manual'
|
||||
extra_args: '--hook-stage manual'
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you 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.
|
||||
|
||||
name: _pre-commit-base
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
extra_args:
|
||||
required: false
|
||||
type: string
|
||||
default: ''
|
||||
job_id:
|
||||
required: true
|
||||
type: string
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
run-hooks:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout ${{ github.ref }} ( ${{ github.sha }} )'
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||
with:
|
||||
python-version: '3.10'
|
||||
architecture: 'x64'
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pre-commit
|
||||
- name: set PY
|
||||
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> "$GITHUB_ENV"
|
||||
- uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
|
||||
with:
|
||||
path: ~/.cache/pre-commit
|
||||
key: pre-commit|${{ inputs.job_id }}|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
||||
- name: Run pre-commit
|
||||
run: pre-commit run --color=always --all-files --show-diff-on-failure ${{ inputs.extra_args }}
|
||||
|
|
@ -28,22 +28,7 @@ concurrency:
|
|||
|
||||
jobs:
|
||||
pre-commit:
|
||||
name: Run pre-commit
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Check Out
|
||||
uses: actions/checkout@v5
|
||||
- name: Install
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install pre-commit
|
||||
- name: Set PY
|
||||
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
|
||||
- uses: actions/cache@v5
|
||||
with:
|
||||
path: ~/.cache/pre-commit
|
||||
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
||||
- name: Run pre-commit
|
||||
run: pre-commit run --color=always --all-files
|
||||
- name: Run manual pre-commit hooks
|
||||
run: pre-commit run --color=always --all-files --hook-stage manual
|
||||
name: Run pre-commit standard
|
||||
uses: ./.github/workflows/pre-commit-reusable.yml
|
||||
with:
|
||||
job_id: 'standard'
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
[](https://codecov.io/gh/apache/cloudstack)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/docker-cloudstack-simulator.yml)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/rat.yml)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/linter.yml)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/pre-commit.yml)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/merge-conflict-checker.yml)
|
||||
[](https://sonarcloud.io/dashboard?id=apache_cloudstack)
|
||||
[](https://github.com/apache/cloudstack/actions/workflows/ci.yml)
|
||||
|
|
|
|||
Loading…
Reference in New Issue