mirror of
https://github.com/gentoo-mirror/gentoo-zh.git
synced 2025-04-17 23:18:49 -04:00
Add a new github-action to check changed ebuilds (#953)
When a PR created, this action will use repoman to check the QA of changed ebuilds which this PR touched. Signed-off-by: bekcpear <i@bitbili.net>
This commit is contained in:
parent
2328a5c930
commit
9d24bea806
95
.github/workflows/repoman-check-on-pr.yml
vendored
Normal file
95
.github/workflows/repoman-check-on-pr.yml
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
name: Use repoman to check changed pkgs
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
- 'metadata/**'
|
||||
types: [opened, edited, reopened, synchronize]
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Setup python3.9
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.9'
|
||||
- name: Prepare environment
|
||||
shell: bash
|
||||
run: |
|
||||
set -xe
|
||||
python -V
|
||||
python -VV
|
||||
sudo mkdir -m 777 -p /etc/portage
|
||||
sudo mkdir -m 777 -p /var/db/repos/gentoo{,-zh}
|
||||
sudo mkdir -m 777 -p /var/tmp/portage
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install -y --no-install-recommends libxslt-dev libxml2-dev libxml2-utils zstd python3-lxml
|
||||
- name: Fetch portage
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: gentoo/portage
|
||||
- name: Install portage
|
||||
shell: bash
|
||||
run: |
|
||||
set -xe
|
||||
printf "[build_ext]\nportage-ext-modules=true" >>setup.cfg
|
||||
sudo ./setup.py install
|
||||
sudo useradd portage -d /var/tmp/portage -s /bin/false
|
||||
sudo ln -s /var/db/repos/gentoo/profiles/default/linux/amd64/17.1 /etc/portage/make.profile
|
||||
sudo printf "[gentoo-zh]\nlocation = /var/db/repos/gentoo-zh" >>/etc/portage/repos.conf
|
||||
- name: Install repoman
|
||||
shell: bash
|
||||
run: |
|
||||
set -xe
|
||||
cd repoman
|
||||
sudo ./setup.py install
|
||||
sudo mv /usr/local/share/repoman /usr/share/ || true
|
||||
- name: Checkout the base ref of ::gentoo-zh
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.base_ref }}
|
||||
path: gentoo-zh
|
||||
- name: Checkout the head ref of ::gentoo-zh
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
ref: ${{ github.head_ref }}
|
||||
path: gentoo-zh
|
||||
- name: Fetch ::gentoo repo
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: gentoo-mirror/gentoo
|
||||
path: gentoo
|
||||
- name: Check
|
||||
shell: bash
|
||||
run: |
|
||||
set -e
|
||||
sudo mv ${{ github.workspace }}/gentoo{,-zh} /var/db/repos/
|
||||
cd /var/db/repos/gentoo-zh
|
||||
echo "git diff --raw origin/master"
|
||||
git diff --raw origin/master
|
||||
diff_files=$(git diff --raw origin/master | awk -F'[[:space:]]' '{printf $NF "\n"}')
|
||||
cates=$(cat /var/db/repos/gentoo{,-zh}/profiles/categories | sort -du)
|
||||
declare -a check_pkgs
|
||||
for file in ${diff_files}; do
|
||||
c=${file%%/*}
|
||||
for cate in ${cates}; do
|
||||
if [[ ${c} == ${cate} ]]; then
|
||||
n=${file#*/}
|
||||
n=${n%%/*}
|
||||
check_pkgs+=( ${c}/${n} )
|
||||
fi
|
||||
done
|
||||
done
|
||||
ret=0
|
||||
for pkg in ${check_pkgs[@]}; do
|
||||
echo "=============================="
|
||||
echo "=== Checking ${pkg} ..."
|
||||
echo "=============================="
|
||||
pushd ${pkg}
|
||||
repoman full || ret=1
|
||||
popd
|
||||
done
|
||||
[[ ${ret} == 0 ]]
|
Loading…
x
Reference in New Issue
Block a user