0.9.0 #45
Workflow file for this run
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: release | |
on: | |
release: | |
types: [released] | |
workflow_dispatch: | |
jobs: | |
brew-dispatcher: | |
name: Release on homebrew-prql | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/github-script@v6 | |
with: | |
github-token: ${{ secrets.HOMEBREW_PRQL_TOKEN }} | |
script: | | |
await github.rest.actions.createWorkflowDispatch({ | |
owner: 'prql', | |
repo: 'homebrew-prql', | |
workflow_id: 'update.yaml', | |
ref: 'main', | |
inputs: { | |
version: '${{ github.ref }}', | |
URL: 'https://github.com/PRQL/prql/archive/${{ github.ref }}.tar.gz' | |
} | |
}) | |
build-prqlc: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-musl | |
- os: ubuntu-latest | |
target: aarch64-unknown-linux-musl | |
- os: macos-latest | |
target: x86_64-apple-darwin | |
- os: macos-latest | |
target: aarch64-apple-darwin | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/build-prqlc | |
id: build-artifact | |
with: | |
target: ${{ matrix.target }} | |
profile: release | |
- name: Upload release artifact | |
uses: softprops/action-gh-release@v1 | |
with: | |
append_body: true | |
files: ${{ steps.build-artifact.outputs.artifact-name }} | |
build-deb-package: | |
# TODO: currently this doesn't publish it as an artifact; would be a welcome contribution | |
# to add that (and eventually as a release asset) | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- name: 👷 Build prql-compiler | |
run: cargo build --release | |
- name: Copy files into .deb package | |
run: | | |
mkdir -p .debpkg/usr/bin | |
cp target/release/prqlc .debpkg/usr/bin/prqlc | |
chmod +x .debpkg/usr/bin/prqlc | |
- name: 📦 Build .deb package | |
uses: jiro4989/build-deb-action@v3 | |
with: | |
package: prqlc | |
package_root: .debpkg | |
maintainer: The PRQL Project | |
version: ${{ github.ref_type == 'tag' && github.ref_name || 0 }} | |
desc: > | |
prqlc is the CLI for the PRQL compiler. It compiles PRQL to SQL, and | |
offers various diagnostics. | |
PRQL is a modern language for transforming data — a simple, | |
powerful, pipelined SQL replacement. | |
build-rpm-package: | |
# TODO: This doesn't publish the rpm yet, that would be a welcome follow-up (even as a CI artifact) | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- name: 👷 Build prqlc | |
run: cargo build --bin prqlc --release | |
- name: Copy files into .rpm package | |
run: | | |
mkdir -p .rpmpkg/usr/bin | |
cp target/release/prqlc .rpmpkg/usr/bin/prqlc | |
chmod +x .rpmpkg/usr/bin/prqlc | |
- name: 📦 Build .rpm package | |
uses: jiro4989/build-rpm-action@v2 | |
with: | |
summary: CLI for PRQL, a modern language for transforming data | |
package: prqlc | |
package_root: .rpmpkg | |
maintainer: The PRQL Project | |
vendor: The PRQL Project | |
version: ${{ github.ref_type == 'tag' && github.ref_name || 0 }} | |
desc: > | |
prqlc is the CLI for the PRQL compiler. It compiles PRQL to SQL, and | |
offers various diagnostics. | |
PRQL is a modern language for transforming data — a simple, | |
powerful, pipelined SQL replacement. | |
license: Apache-2.0 | |
build-and-publish-snap: | |
runs-on: ubuntu-latest | |
# Skip running workflow on forks | |
if: github.repository_owner == 'prql' | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- name: Move Snap to project root directory | |
run: cp -r packages/snap/ . | |
- name: 📦 Build Snap | |
id: build | |
uses: snapcore/action-build@v1 | |
- name: 🆙 Publish Snap | |
uses: snapcore/action-publish@v1 | |
env: | |
SNAPCRAFT_STORE_CREDENTIALS: | |
${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }} | |
with: | |
snap: ${{ steps.build.outputs.snap }} | |
release: edge | |
build-python-wheels: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [macos-latest, windows-latest] | |
include: | |
- os: ubuntu-latest | |
target: x86_64 | |
- os: ubuntu-latest | |
target: aarch64 | |
- os: ubuntu-latest | |
target: source | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- uses: ./.github/actions/build-prql-python | |
with: | |
target: ${{ matrix.target }} | |
publish-prql-python: | |
runs-on: ubuntu-latest | |
needs: [build-python-wheels] | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: wheels | |
- name: Publish to PyPI | |
uses: messense/maturin-action@v1 | |
env: | |
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
with: | |
command: upload | |
args: --skip-existing * | |
publish-prql-js: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: wasm-pack | |
- name: Setup Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
registry-url: "https://registry.npmjs.org" | |
- name: Publish package on npm | |
run: npm publish | |
working-directory: bindings/prql-js/ | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
publish-to-cargo: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- uses: baptiste0928/cargo-install@v2 | |
with: | |
crate: cargo-release | |
- uses: richb-hanover/[email protected] | |
with: | |
command: release | |
args: publish --no-confirm -x | |
env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
# Requires another pass: https://github.com/PRQL/prql/issues/850 | |
# publish-prql-java: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v3 | |
# - name: Install Java and Maven | |
# uses: actions/setup-java@v3 | |
# with: | |
# java-version: 8 | |
# - name: Release Maven package | |
# uses: samuelmeuli/action-maven-publish@v1 | |
# with: | |
# gpg_private_key: ${{ secrets.gpg_private_key }} | |
# gpg_passphrase: ${{ secrets.gpg_passphrase }} | |
# nexus_username: ${{ secrets.nexus_username }} | |
# nexus_password: ${{ secrets.nexus_password }} | |
# directory: prql-java/java/ | |
push-web-branch: | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📂 Checkout code | |
uses: actions/checkout@v3 | |
- run: git push origin HEAD:web --force | |
push-devcontainer-base-image: | |
uses: ./.github/workflows/build-devcontainer.yaml |