Skip to content

v0.2.2

v0.2.2 #17

Workflow file for this run

name: "release"
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: read
jobs:
build-linux_x86-extension:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- run: make loadable static
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-linux_x86
path: dist/*
build-linux_x86-python:
runs-on: ubuntu-20.04
needs: [build-linux_x86-extension]
steps:
- uses: actions/checkout@v3
- name: Download workflow artifacts
uses: actions/download-artifact@v3
with:
name: sqlite-lines-linux_x86
path: dist/
- uses: actions/setup-python@v3
- run: pip install wheel
- run: make python
- run: make datasette
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-linux_x86-wheels
path: dist/wheels/*.whl
build-macos-extension:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- run: make loadable static
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-macos
path: dist/*
build-macos-python:
runs-on: macos-latest
needs: [build-macos-extension]
steps:
- uses: actions/checkout@v3
- name: Download workflow artifacts
uses: actions/download-artifact@v3
with:
name: sqlite-lines-macos
path: dist/
- uses: actions/setup-python@v3
- run: pip install wheel
- run: make python
- run: make datasette
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-macos-wheels
path: dist/wheels/*.whl
build-macos-aarch64-extension:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- run: make loadable static CFLAGS="-target arm64-apple-macos11"
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-macos-aarch64
path: dist/*
build-macos-aarch64-python:
runs-on: macos-latest
needs: [build-macos-aarch64-extension]
steps:
- uses: actions/checkout@v3
- name: Download workflow artifacts
uses: actions/download-artifact@v3
with:
name: sqlite-lines-macos-aarch64
path: dist/
- uses: actions/setup-python@v3
- run: pip install wheel
- run: make python IS_MACOS_ARM=1
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-macos-aarch64-wheels
path: dist/wheels/*.whl
build-datasette-sqlite-utils:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
- run: pip install wheel build
- run: make datasette sqlite-utils
- uses: actions/upload-artifact@v3
with:
name: sqlite-lines-datasette-sqlite-utils-wheels
path: dist/wheels/*.whl
upload-extensions:
name: Upload release assets
needs:
[
build-macos-extension,
build-macos-aarch64-extension,
build-linux_x86-extension,
]
permissions:
contents: write
runs-on: ubuntu-latest
outputs:
checksums: ${{ steps.upload-spm.outputs.asset-checksums }}
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- uses: asg017/upload-spm@main
id: upload-spm
with:
name: sqlite-lines
github-token: ${{ secrets.GITHUB_TOKEN }}
platforms: |
linux-x86_64: sqlite-lines-linux_x86/*
macos-x86_64: sqlite-lines-macos/*
macos-aarch64: sqlite-lines-macos-aarch64/*
upload-deno:
name: Upload Deno release assets
needs:
[
build-macos-extension,
build-macos-aarch64-extension,
build-linux_x86-extension,
]
outputs:
deno-checksums: ${{ steps.deno-assets.outputs.result }}
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download workflow artifacts
uses: actions/download-artifact@v2
- id: deno-assets
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const script = require('.github/workflows/upload-deno-assets.js')
await script({github, context})
upload-checksums:
needs: [upload-extensions, upload-deno]
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
checksums: ${{ steps.upload-checksums.outputs.result }}
steps:
- id: upload-checksums
uses: actions/github-script@v6
env:
CHECKSUMS: "${{ needs.upload-extensions.outputs.checksums }}\n${{ needs.upload-deno.outputs.deno-checksums }}"
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
result-encoding: string
script: |
const { owner, repo } = context.repo;
const release = await github.rest.repos.getReleaseByTag({
owner,
repo,
tag: process.env.GITHUB_REF.replace("refs/tags/", ""),
});
const release_id = release.data.id;
github.rest.repos.uploadReleaseAsset({
owner,
repo,
release_id,
name: "checksums.txt",
data: process.env.CHECKSUMS,
});
return process.env.CHECKSUMS
upload-npm:
needs:
[
build-macos-extension,
build-macos-aarch64-extension,
build-linux_x86-extension,
]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download workflow artifacts
uses: actions/download-artifact@v2
- run: |
cp sqlite-lines-linux_x86/lines0.so npm/sqlite-lines-linux-x64/lib/lines0.so
cp sqlite-lines-macos/lines0.dylib npm/sqlite-lines-darwin-x64/lib/lines0.dylib
cp sqlite-lines-macos-aarch64/lines0.dylib npm/sqlite-lines-darwin-arm64/lib/lines0.dylib
- name: Install node
uses: actions/setup-node@v3
with:
node-version: "16"
registry-url: "https://registry.npmjs.org"
- name: Publish NPM sqlite-lines-linux-x64
working-directory: npm/sqlite-lines-linux-x64
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish NPM sqlite-lines-darwin-x64
working-directory: npm/sqlite-lines-darwin-x64
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish NPM sqlite-lines-darwin-arm64
working-directory: npm/sqlite-lines-darwin-arm64
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish NPM sqlite-lines
working-directory: npm/sqlite-lines
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
upload-gem:
needs:
[
build-macos-extension,
build-macos-aarch64-extension,
build-linux_x86-extension,
]
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
- run: |
rm bindings/ruby/lib/*.{dylib,so,dll} || true
cp sqlite-lines-macos/*.dylib bindings/ruby/lib
gem -C bindings/ruby build -o x86_64-darwin.gem sqlite_lines.gemspec
env:
PLATFORM: x86_64-darwin
- run: |
rm bindings/ruby/lib/*.{dylib,so,dll} || true
cp sqlite-lines-macos-aarch64/*.dylib bindings/ruby/lib
gem -C bindings/ruby build -o arm64-darwin.gem sqlite_lines.gemspec
env:
PLATFORM: arm64-darwin
- run: |
rm bindings/ruby/lib/*.{dylib,so,dll} || true
cp sqlite-lines-linux_x86/*.so bindings/ruby/lib
gem -C bindings/ruby build -o x86_64-linux.gem sqlite_lines.gemspec
env:
PLATFORM: x86_64-linux
- run: |
gem push bindings/ruby/x86_64-linux.gem
gem push bindings/ruby/x86_64-darwin.gem
gem push bindings/ruby/arm64-darwin.gem
env:
GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }}
upload-pypi:
needs:
[
build-linux_x86-python,
build-macos-python,
build-macos-aarch64-python,
build-datasette-sqlite-utils,
]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: sqlite-lines-linux_x86-wheels
path: dist
- uses: actions/download-artifact@v3
with:
name: sqlite-lines-macos-wheels
path: dist
- uses: actions/download-artifact@v3
with:
name: sqlite-lines-macos-aarch64-wheels
path: dist
- uses: actions/download-artifact@v3
with:
name: sqlite-lines-datasette-sqlite-utils-wheels
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
skip_existing: true