-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
init openvela ci and precheck actions
Signed-off-by: zhangning21 <[email protected]>
- Loading branch information
0 parents
commit 7e08f13
Showing
9 changed files
with
1,067 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# 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. | ||
# | ||
|
||
name: ci-container | ||
inputs: | ||
run: # id of input | ||
description: 'Commands to run' | ||
required: true | ||
runs: | ||
using: 'docker' | ||
image: 'ghcr.io/open-vela/openvela-ci-linux' | ||
args: | ||
- "/bin/bash" | ||
- "-ce" | ||
- ${{ inputs.run }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,248 @@ | ||
name: "Free Disk Space (Ubuntu)" | ||
author: "Jérémie Lumbroso" | ||
description: "A configurable GitHub Action to free up disk space on an Ubuntu GitHub Actions runner.(https://github.com/jlumbroso/free-disk-space)" | ||
|
||
# See: https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#branding | ||
branding: | ||
icon: "trash-2" | ||
color: "green" | ||
|
||
inputs: | ||
android: | ||
description: "Remove Android runtime" | ||
required: false | ||
default: "true" | ||
dotnet: | ||
description: "Remove .NET runtime" | ||
required: false | ||
default: "true" | ||
haskell: | ||
description: "Remove Haskell runtime" | ||
required: false | ||
default: "true" | ||
|
||
# option inspired by: | ||
# https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh | ||
large-packages: | ||
description: "Remove large packages" | ||
required: false | ||
default: "true" | ||
|
||
docker-images: | ||
description: "Remove Docker images" | ||
required: false | ||
default: "true" | ||
|
||
# option inspired by: | ||
# https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159 | ||
tool-cache: | ||
description: "Remove image tool cache" | ||
required: false | ||
default: "false" | ||
|
||
swap-storage: | ||
description: "Remove swap storage" | ||
required: false | ||
default: "true" | ||
|
||
runs: | ||
using: "composite" | ||
steps: | ||
- shell: bash | ||
run: | | ||
# ====== | ||
# MACROS | ||
# ====== | ||
# macro to print a line of equals | ||
# (silly but works) | ||
printSeparationLine() { | ||
str=${1:=} | ||
num=${2:-80} | ||
counter=1 | ||
output="" | ||
while [ $counter -le $num ] | ||
do | ||
output="${output}${str}" | ||
counter=$((counter+1)) | ||
done | ||
echo "${output}" | ||
} | ||
# macro to compute available space | ||
# REF: https://unix.stackexchange.com/a/42049/60849 | ||
# REF: https://stackoverflow.com/a/450821/408734 | ||
getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); } | ||
# macro to make Kb human readable (assume the input is Kb) | ||
# REF: https://unix.stackexchange.com/a/44087/60849 | ||
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); } | ||
# macro to output saved space | ||
printSavedSpace() { | ||
saved=${1} | ||
title=${2:-} | ||
echo "" | ||
printSeparationLine '*' 80 | ||
if [ ! -z "${title}" ]; then | ||
echo "=> ${title}: Saved $(formatByteCount $saved)" | ||
else | ||
echo "=> Saved $(formatByteCount $saved)" | ||
fi | ||
printSeparationLine '*' 80 | ||
echo "" | ||
} | ||
# macro to print output of dh with caption | ||
printDH() { | ||
caption=${1:-} | ||
printSeparationLine '=' 80 | ||
echo "${caption}" | ||
echo "" | ||
echo "$ dh -h /" | ||
echo "" | ||
df -h / | ||
echo "$ dh -a /" | ||
echo "" | ||
df -a / | ||
echo "$ dh -a" | ||
echo "" | ||
df -a | ||
printSeparationLine '=' 80 | ||
} | ||
# ====== | ||
# SCRIPT | ||
# ====== | ||
# Display initial disk space stats | ||
AVAILABLE_INITIAL=$(getAvailableSpace) | ||
AVAILABLE_ROOT_INITIAL=$(getAvailableSpace '/') | ||
printDH "BEFORE CLEAN-UP:" | ||
echo "" | ||
# Option: Remove Android library | ||
if [[ ${{ inputs.android }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo rm -rf /usr/local/lib/android || true | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Android library" | ||
fi | ||
# Option: Remove .NET runtime | ||
if [[ ${{ inputs.dotnet }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
# https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11 | ||
sudo rm -rf /usr/share/dotnet || true | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED ".NET runtime" | ||
fi | ||
# Option: Remove Haskell runtime | ||
if [[ ${{ inputs.haskell }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo rm -rf /opt/ghc || true | ||
sudo rm -rf /usr/local/.ghcup || true | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Haskell runtime" | ||
fi | ||
# Option: Remove large packages | ||
# REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh | ||
if [[ ${{ inputs.large-packages }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding..." | ||
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..." | ||
sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..." | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Large misc. packages" | ||
fi | ||
# Option: Remove Docker images | ||
if [[ ${{ inputs.docker-images }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo docker image prune --all --force || true | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Docker images" | ||
fi | ||
# Option: Remove tool cache | ||
# REF: https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159 | ||
if [[ ${{ inputs.tool-cache }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Tool cache" | ||
fi | ||
# Option: Remove Swap storage | ||
if [[ ${{ inputs.swap-storage }} == 'true' ]]; then | ||
BEFORE=$(getAvailableSpace) | ||
sudo swapoff -a || true | ||
sudo rm -f /mnt/swapfile || true | ||
free -h | ||
AFTER=$(getAvailableSpace) | ||
SAVED=$((AFTER-BEFORE)) | ||
printSavedSpace $SAVED "Swap storage" | ||
fi | ||
# Output saved space statistic | ||
AVAILABLE_END=$(getAvailableSpace) | ||
AVAILABLE_ROOT_END=$(getAvailableSpace '/') | ||
echo "" | ||
printDH "AFTER CLEAN-UP:" | ||
echo "" | ||
echo "" | ||
echo "/dev/root:" | ||
printSavedSpace $((AVAILABLE_ROOT_END - AVAILABLE_ROOT_INITIAL)) | ||
echo "overall:" | ||
printSavedSpace $((AVAILABLE_END - AVAILABLE_INITIAL)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# This is a basic workflow to help you get started with Actions | ||
|
||
name: checkpatch | ||
|
||
# Controls when the workflow will run | ||
on: | ||
pull_request: | ||
types: [opened, reopened, synchronize] | ||
|
||
# reusable | ||
workflow_call: | ||
|
||
concurrency: | ||
group: check-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | ||
jobs: | ||
checkpatch: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Get Repo Name | ||
run: | | ||
echo "REPO_NAME=$(basename ${{ github.repository }})" >> $GITHUB_ENV | ||
- name: Checkout Repo | ||
uses: actions/checkout@v4 | ||
id: checkout | ||
with: | ||
repository: ${{ github.repository }} | ||
path: ${{ env.REPO_NAME }} | ||
fetch-depth: 0 | ||
|
||
- name: Checkout Nuttx Repo | ||
if: ${{ github.repository != '${{ github.repository_owner }}/nuttx' }} | ||
uses: actions/checkout@v4 | ||
with: | ||
ssh-key: ${{ secrets.SSH_PRIVATE_KEY }} | ||
repository: ${{ github.repository_owner }}/nuttx | ||
ref: ${{ github.head_ref }} | ||
path: nuttx | ||
fetch-depth: 0 | ||
|
||
- name: Check PR | ||
run: | | ||
echo "::add-matcher::nuttx/.github/nxstyle.json" | ||
python -m venv .venv | ||
source .venv/bin/activate | ||
pip install cmake-format | ||
cd ${{ env.REPO_NAME }} | ||
commits="${{ github.event.pull_request.base.sha }}..HEAD" | ||
git log --oneline $commits | ||
echo "../nuttx/tools/checkpatch.sh -u -m -g $commits" | ||
bash -x ../nuttx/tools/checkpatch.sh -u -m -g $commits |
Oops, something went wrong.