Skip to content

WIP: [CI] Run PR builds in contributor forks #13723

WIP: [CI] Run PR builds in contributor forks

WIP: [CI] Run PR builds in contributor forks #13723

Workflow file for this run

# 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: Archery & Crossbow
on:
push:
branches:
- '**'
- '!dependabot/**'
tags:
- '**'
paths:
- '.dockerignore'
- '.github/workflows/archery.yml'
- 'dev/archery/**'
- 'dev/tasks/**'
- 'compose.yaml'
workflow_dispatch:
pull_request:
types: [opened, synchronize, reopened, labeled]
paths:
- '.dockerignore'
- '.github/workflows/archery.yml'
- 'dev/archery/**'
- 'dev/tasks/**'
- 'compose.yaml'
env:
ARCHERY_DEBUG: 1
ARCHERY_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
concurrency:
# Cancel superseded fork pushes; unrelated labels must not cancel running builds.
group: "${{ github.workflow }}-${{ github.repository }}-${{ github.event.pull_request.number || (github.repository != 'apache/arrow' && github.ref) || github.sha }}-${{ github.event.action == 'labeled' && github.event.label.name != 'CI: Upstream' }}"
cancel-in-progress: true
permissions:
contents: read
# Fork PRs to main run in the contributor's fork; CI: Upstream requests merge-ref validation.
jobs:
test:
if: >-
!contains(github.event.pull_request.title, 'WIP') &&
(github.event.action != 'labeled' || github.event.label.name == 'CI: Upstream') &&
(github.event_name != 'pull_request' ||
github.repository != 'apache/arrow' ||
github.base_ref != 'main' ||
github.event.pull_request.head.repo.full_name == github.repository ||
contains(github.event.pull_request.labels.*.name, 'CI: Upstream'))
name: Archery Unittests and Crossbow Check Config
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout Arrow
uses: actions/checkout@v7
with:
persist-credentials: false
fetch-depth: 0
- name: Git Fixup
shell: bash
run: git branch $ARCHERY_DEFAULT_BRANCH origin/$ARCHERY_DEFAULT_BRANCH || true
- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: '3.12'
- name: Install pygit2 binary wheel
run: pip install pygit2 --only-binary pygit2
- name: Install Archery, Crossbow- and Test Dependencies
run: |
pip install -e dev/archery[all]
pip install -r dev/archery/requirements-test.txt
- name: Archery Unittests
working-directory: dev/archery
run: pytest -v archery
- name: Archery Docker Validation
run: archery docker check-config
- name: Crossbow Check Config
working-directory: dev/tasks
run: archery crossbow check-config