Skip to content

webmacro to 0.0.2 w/ WASM support #632

webmacro to 0.0.2 w/ WASM support

webmacro to 0.0.2 w/ WASM support #632

Workflow file for this run

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