Avro: Add pointer to blog bost #641
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
name: Community Extension Build | |
on: | |
pull_request: | |
paths-ignore: | |
- '**' | |
- '!scripts/build.py' | |
- '!.github/workflows/build.yml' | |
- '!extensions/*/description.yml' | |
push: | |
paths-ignore: | |
- '**' | |
- '!scripts/build.py' | |
- '!.github/workflows/build.yml' | |
- '!extensions/*/description.yml' | |
workflow_dispatch: | |
inputs: | |
extension_name: | |
type: string | |
duckdb_version: | |
type: string | |
duckdb_tag: | |
type: string | |
deploy: | |
type: string | |
more_excluded: | |
type: string | |
skip_tests: | |
required: false | |
type: boolean | |
default: false | |
workflow_call: | |
inputs: | |
extension_name: | |
type: string | |
duckdb_version: | |
type: string | |
duckdb_tag: | |
type: string | |
deploy: | |
type: string | |
more_excluded: | |
type: string | |
skip_tests: | |
required: false | |
type: boolean | |
default: false | |
jobs: | |
prepare: | |
outputs: | |
COMMUNITY_EXTENSION_NAME: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_NAME }} | |
COMMUNITY_EXTENSION_GITHUB: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_GITHUB }} | |
COMMUNITY_EXTENSION_REF: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_REF }} | |
COMMUNITY_EXTENSION_DEPLOY: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_DEPLOY }} | |
COMMUNITY_EXTENSION_EXCLUDE_PLATFORMS: ${{ inputs.more_excluded }}${{ steps.parse.outputs.COMMUNITY_EXTENSION_EXCLUDE_PLATFORMS }} | |
COMMUNITY_EXTENSION_REQUIRES_TOOLCHAINS: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_REQUIRES_TOOLCHAINS }} | |
COMMUNITY_EXTENSION_VCPKG_URL: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_VCPKG_URL == '' && 'https://github.com/microsoft/vcpkg.git' || steps.parse.outputs.COMMUNITY_EXTENSION_VCPKG_URL }} | |
COMMUNITY_EXTENSION_VCPKG_COMMIT: ${{ steps.parse.outputs.COMMUNITY_EXTENSION_VCPKG_COMMIT == '' && 'a1a1cbc975abf909a6c8985a6a2b8fe20bbd9bd6' || steps.parse.outputs.COMMUNITY_EXTENSION_VCPKG_COMMIT }} | |
env: | |
DUCKDB_LATEST_STABLE: 'v1.1.3' | |
DUCKDB_VERSION: ${{ inputs.duckdb_version || 'v1.1.3' }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Get all changed description files | |
id: changed-files | |
uses: tj-actions/changed-files@v44 | |
with: | |
files: | | |
extensions/*/description.yml | |
- name: Parse description files | |
id: parse | |
env: | |
ALL_CHANGED_FILES: ${{ github.event_name == 'workflow_dispatch' && format('extensions/{0}/description.yml', inputs.extension_name) || steps.changed-files.outputs.all_changed_files }} | |
PIP_BREAK_SYSTEM_PACKAGES: 1 | |
run: | | |
pip install pyyaml | |
# scripts/build.py takes DUCKDB_VERSION from environment | |
python scripts/build.py | |
cat env.sh >> $GITHUB_OUTPUT | |
echo `cat $GITHUB_OUTPUT` | |
build: | |
needs: prepare | |
uses: duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml@main | |
if: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_NAME != '' }} | |
with: | |
duckdb_version: ${{ inputs.duckdb_version || 'v1.1.3' }} | |
duckdb_tag: ${{ inputs.duckdb_tag || '' }} | |
ci_tools_version: 'main' | |
exclude_archs: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_EXCLUDE_PLATFORMS }} | |
extra_toolchains: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_REQUIRES_TOOLCHAINS }} | |
extension_name: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_NAME }} | |
override_repository: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_GITHUB }} | |
override_ref: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_REF }} | |
vcpkg_url: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_VCPKG_URL}} | |
vcpkg_commit: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_VCPKG_COMMIT}} | |
skip_tests: ${{ inputs.skip_tests || false }} | |
doc_test: | |
if: ${{ inputs.deploy != 'false' }} | |
needs: | |
- prepare | |
- build | |
uses: ./.github/workflows/generate_docs.yml | |
with: | |
extension_name: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_NAME }} | |
archive: | |
needs: | |
- doc_test | |
- prepare | |
- build | |
uses: ./.github/workflows/_extension_archive.yml | |
if: ${{ (github.head_ref || github.ref_name) == 'main' }} | |
secrets: inherit | |
with: | |
extension_name: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_NAME }} | |
repository: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_GITHUB }} | |
ref: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_REF }} | |
deploy: | |
needs: | |
- prepare | |
- build | |
uses: ./.github/workflows/_extension_deploy.yml | |
if: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_DEPLOY != '' }} | |
secrets: inherit | |
with: | |
deploy_latest: true | |
duckdb_version: ${{ inputs.duckdb_version || 'v1.1.3' }} | |
exclude_archs: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_EXCLUDE_PLATFORMS }} | |
extension_name: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_NAME }} | |
repository: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_GITHUB }} | |
ref: ${{ needs.prepare.outputs.COMMUNITY_EXTENSION_REF }} | |
docs_all: | |
if: ${{ (github.head_ref || github.ref_name) == 'main' }} | |
needs: | |
- deploy | |
uses: ./.github/workflows/generate_docs.yml |