.github/workflows: use checkout script instead of action

uses treeless fetches instead of `--depth`. This is not supported by
`actions/checkout`, so it was implemented as a short script (staying
with `actions/checkout@v1` does not seem like a good idea because of
its age, and updating to `actions/checkout@v3` would require adding
`libstdc++` to any CI workflows that run in void containers because
of node's requirements)

see also: https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/

this can't be implemented as a script in `common/travis/` because the
repo doesn't exist on the runner (yet!)

also fix indentation in cycle check
This commit is contained in:
classabbyamp 2022-12-16 05:00:52 -05:00 committed by classabbyamp
parent 893af2dd60
commit 4410de52c1
2 changed files with 68 additions and 27 deletions

View File

@ -26,10 +26,23 @@ jobs:
LICENSE_LIST: common/travis/license.lst LICENSE_LIST: common/travis/license.lst
steps: steps:
- uses: actions/checkout@v1 - name: Clone and checkout
with: run: |
fetch-depth: 200 REMOTE_REF=$(echo ${{ github.ref }} | sed 's;refs/;refs/remotes/;')
- run: common/travis/fetch_upstream.sh /bin/echo -e '::group::\x1b[32mCloning repository...\x1b[0m'
git clone --progress --no-checkout --filter=tree:0 \
"${{ github.server_url }}/${{ github.repository }}" "$PWD"
git config --global --add gc.auto 0
git config --global --add safe.directory "$PWD"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mFetching repository refs...\x1b[0m'
git fetch --prune --progress --filter=tree:0 origin \
+refs/heads/*:refs/remotes/origin/* \
+${{ github.ref }}:"${REMOTE_REF}"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mChecking out repository...\x1b[0m'
git checkout --progress --force "${REMOTE_REF}"
echo "::endgroup::"
- run: common/travis/changed_templates.sh - run: common/travis/changed_templates.sh
- run: common/travis/fetch-xbps.sh - run: common/travis/fetch-xbps.sh
- run: common/travis/fetch-xtools.sh - run: common/travis/fetch-xtools.sh
@ -73,15 +86,28 @@ jobs:
# Upgrade again (in case there was a xbps update) # Upgrade again (in case there was a xbps update)
xbps-install -yu xbps-install -yu
- uses: actions/checkout@v1 - name: Clone and checkout
with: run: |
fetch-depth: 200 REMOTE_REF=$(echo ${{ github.ref }} | sed 's;refs/;refs/remotes/;')
/bin/echo -e '::group::\x1b[32mCloning repository...\x1b[0m'
git clone --progress --no-checkout --filter=tree:0 \
"${{ github.server_url }}/${{ github.repository }}" "$PWD"
git config --global --add gc.auto 0
git config --global --add safe.directory "$PWD"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mFetching repository refs...\x1b[0m'
git fetch --prune --progress --filter=tree:0 origin \
+refs/heads/*:refs/remotes/origin/* \
+${{ github.ref }}:"${REMOTE_REF}"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mChecking out repository...\x1b[0m'
git checkout --progress --force "${REMOTE_REF}"
echo "::endgroup::"
- name: Create hostrepo and prepare masterdir - name: Create hostrepo and prepare masterdir
run: | run: |
ln -s "$(pwd)" /hostrepo && ln -s "$(pwd)" /hostrepo &&
common/travis/set_mirror.sh && common/travis/set_mirror.sh &&
common/travis/prepare.sh && common/travis/prepare.sh &&
common/travis/fetch_upstream.sh &&
common/travis/fetch-xtools.sh common/travis/fetch-xtools.sh
- run: common/travis/changed_templates.sh - run: common/travis/changed_templates.sh

View File

@ -10,7 +10,9 @@ jobs:
permissions: permissions:
issues: write issues: write
container: container:
image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl' image: 'ghcr.io/void-linux/xbps-src-masterdir:20220527RC01-x86_64-musl'
env:
PATH: '/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
steps: steps:
- name: Prepare container - name: Prepare container
run: | run: |
@ -23,26 +25,39 @@ jobs:
xbps-install -yu xbps-install -yu
# Install script dependencies # Install script dependencies
xbps-install -y python3-networkx github-cli xbps-install -y python3-networkx github-cli
- uses: actions/checkout@v1
with: - name: Clone and checkout
fetch-depth: 1 run: |
REMOTE_REF=$(echo ${{ github.ref }} | sed 's;refs/;refs/remotes/;')
/bin/echo -e '::group::\x1b[32mCloning repository...\x1b[0m'
git clone --progress --no-checkout --filter=tree:0 \
"${{ github.server_url }}/${{ github.repository }}" "$PWD"
git config --global --add gc.auto 0
git config --global --add safe.directory "$PWD"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mFetching repository refs...\x1b[0m'
git fetch --prune --progress --filter=tree:0 origin \
+refs/heads/*:refs/remotes/origin/* \
+${{ github.ref }}:"${REMOTE_REF}"
echo "::endgroup::"
/bin/echo -e '::group::\x1b[32mChecking out repository...\x1b[0m'
git checkout --progress --force "${REMOTE_REF}"
echo "::endgroup::"
- name: Create hostrepo and prepare masterdir - name: Create hostrepo and prepare masterdir
run: | run: |
ln -s "$(pwd)" /hostrepo && ln -s "$(pwd)" /hostrepo &&
common/travis/set_mirror.sh && common/travis/set_mirror.sh &&
common/travis/prepare.sh common/travis/prepare.sh
- name: Find cycles and open issues - name: Find cycles and open issues
run: | run: |
PATH="/usr/libexec/chroot-git:$PATH" common/scripts/xbps-cycles.py | tee cycles
# required by git 2.35.2+ grep 'Cycle:' cycles | while read -r line; do
git config --global --add safe.directory "$PWD" if gh issue list -R "$GITHUB_REPOSITORY" -S "$line" | grep .; then
common/scripts/xbps-cycles.py | tee cycles printf "Issue on '%s' already exists.\n" "$line"
grep 'Cycle:' cycles | while read -r line; do else
if gh issue list -R "$GITHUB_REPOSITORY" -S "$line" | grep .; then gh issue create -R "$GITHUB_REPOSITORY" -b '' -t "$line"
printf "Issue on '%s' already exists.\n" "$line" fi
else done
gh issue create -R "$GITHUB_REPOSITORY" -b '' -t "$line"
fi
done
env: env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN }}