win: rustup target add x86_64-pc-windows-gnu #189
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: "build" | |
on: | |
push: | |
branches: | |
- main | |
permissions: | |
contents: read | |
jobs: | |
build-ubuntu-extension: | |
name: Building ubuntu | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- run: make loadable static | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu | |
path: dist/debug/* | |
build-ubuntu-python: | |
runs-on: ubuntu-20.04 | |
needs: [build-ubuntu-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download workflow artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu | |
path: dist/debug/ | |
- uses: actions/setup-python@v3 | |
- run: pip install wheel | |
- run: make python | |
- run: make datasette | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu-wheels | |
path: dist/debug/wheels/*.whl | |
test-ubuntu: | |
runs-on: ubuntu-20.04 | |
needs: [build-ubuntu-extension, build-ubuntu-python] | |
env: | |
DENO_DIR: deno_cache | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu | |
path: dist/debug/ | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu | |
path: npm/sqlite-ulid-linux-x64/lib | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu-wheels | |
path: dist/debug/ | |
- run: pip3 install --find-links dist/debug/ sqlite_ulid | |
- run: make test-loadable | |
- run: make test-python | |
# for test-npm | |
- uses: actions/setup-node@v3 | |
with: | |
cache: "npm" | |
cache-dependency-path: npm/sqlite-ulid/package.json | |
- run: npm install | |
working-directory: npm/sqlite-ulid | |
- run: make test-npm | |
# for test-deno | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.30 | |
- name: Cache Deno dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.DENO_DIR }} | |
key: ${{ runner.os }}-${{ hashFiles('deno/deno.lock') }} | |
- run: make test-deno | |
env: | |
DENO_SQLITE_ULID_PATH: ${{ github.workspace }}/dist/debug/ulid0 | |
- run: go run demo.go | |
working-directory: examples/go | |
env: | |
CGO_LDFLAGS: -L${{ github.workspace }}/dist/debug | |
build-macos-extension: | |
name: Building macos-latest | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- run: make loadable static | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-macos | |
path: dist/debug/* | |
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-ulid-macos | |
path: dist/debug/ | |
- uses: actions/setup-python@v3 | |
- run: pip install wheel | |
- run: make python | |
- run: make datasette | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-macos-wheels | |
path: dist/debug/wheels/*.whl | |
test-macos: | |
runs-on: macos-latest | |
needs: [build-macos-extension, build-macos-python] | |
env: | |
DENO_DIR: deno_cache | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-macos | |
path: dist/debug/ | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-macos | |
path: npm/sqlite-ulid-darwin-x64/lib | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-macos-wheels | |
path: dist/debug/ | |
- run: brew install python | |
- run: /usr/local/opt/python@3/libexec/bin/pip install --find-links dist/debug/ sqlite_ulid | |
- run: make test-loadable python=/usr/local/opt/python@3/libexec/bin/python | |
- run: make test-python python=/usr/local/opt/python@3/libexec/bin/python | |
# for test-npm | |
- uses: actions/setup-node@v3 | |
with: | |
cache: "npm" | |
cache-dependency-path: npm/sqlite-ulid/package.json | |
- run: npm install | |
working-directory: npm/sqlite-ulid | |
- run: make test-npm | |
# for test-deno | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.30 | |
- name: Cache Deno dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.DENO_DIR }} | |
key: ${{ runner.os }}-${{ hashFiles('deno/deno.lock') }} | |
- run: make test-deno | |
env: | |
DENO_SQLITE_ULID_PATH: ${{ github.workspace }}/dist/debug/ulid0 | |
- run: go run demo.go | |
working-directory: examples/go | |
env: | |
CGO_LDFLAGS: -L${{ github.workspace }}/dist/debug | |
build-macos-arm-extension: | |
name: Building macos arm extension | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
- run: rustup target add aarch64-apple-darwin | |
- run: make loadable static target=aarch64-apple-darwin | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-macos-arm | |
path: dist/debug/* | |
build-macos-arm-python: | |
runs-on: macos-latest | |
needs: [build-macos-arm-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download workflow artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-macos-arm | |
path: dist/debug/ | |
- uses: actions/setup-python@v3 | |
- run: pip install wheel | |
- run: make python IS_MACOS_ARM=1 | |
- run: make datasette | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-macos-arm-wheels | |
path: dist/debug/wheels/*.whl | |
build-windows-extension: | |
name: Building windows extension | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.67.0 | |
override: true | |
default: true | |
- run: rustup target add x86_64-pc-windows-gnu | |
- run: rustup set default-host x86_64-pc-windows-gnu | |
- run: cargo --version | |
- run: make loadable static target=x86_64-pc-windows-gnu | |
env: | |
RUSTFLAGS: "--print=native-static-libs --print=link-args" | |
- run: ls dist/debug | |
- run: ls target/debug | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: dist/debug/* | |
build-windows-python: | |
runs-on: windows-latest | |
needs: [build-windows-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download workflow artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: dist/debug/ | |
- uses: actions/setup-python@v3 | |
- run: pip install wheel | |
- run: make python | |
- run: make datasette | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: sqlite-ulid-windows-wheels | |
path: dist/debug/wheels/*.whl | |
test-windows: | |
runs-on: windows-latest | |
needs: [build-windows-extension, build-windows-python] | |
env: | |
DENO_DIR: deno_cache | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: dist/debug/ | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: npm/sqlite-ulid-windows-x64/lib | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows-wheels | |
path: dist/debug/ | |
- run: pip install --find-links dist/debug/ sqlite_ulid | |
- run: make test-loadable | |
- run: make test-python | |
# for test-npm | |
- uses: actions/setup-node@v3 | |
with: | |
cache: "npm" | |
cache-dependency-path: npm/sqlite-ulid/package.json | |
- run: npm install | |
working-directory: npm/sqlite-ulid | |
- run: make test-npm | |
# for test-deno | |
- uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.30 | |
- name: Cache Deno dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.DENO_DIR }} | |
key: ${{ runner.os }}-${{ hashFiles('deno/deno.lock') }} | |
- run: make test-deno | |
env: | |
DENO_SQLITE_ULID_PATH: ${{ github.workspace }}/dist/debug/ulid0 | |
test-macos-c: | |
runs-on: macos-latest | |
needs: [build-macos-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-macos | |
path: dist/debug/ | |
- run: brew install sqlite | |
- run: make demo | |
working-directory: examples/c | |
- run: examples/c/demo | |
test-ubuntu-c: | |
runs-on: ubuntu-20.04 | |
needs: [build-ubuntu-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-ubuntu | |
path: dist/debug/ | |
- run: make demo CFLAGS="-pthread -ldl" | |
working-directory: examples/c | |
- run: examples/c/demo | |
test-windows-c: | |
runs-on: windows-latest | |
needs: [build-windows-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: dist/debug/ | |
- run: | | |
mkdir -p ${{ github.workspace }}/sqlite | |
cd ${{ github.workspace }}/sqlite | |
curl -LO https://www.sqlite.org/2023/sqlite-amalgamation-3420000.zip | |
unzip sqlite-amalgamation-3420000.zip | |
mv sqlite-amalgamation-3420000/* . | |
curl -LO https://www.sqlite.org/2023/sqlite-tools-linux-x86-3420000.zip | |
unzip sqlite-tools-linux-x86-3420000.zip | |
- run: make demo CFLAGS="-I${{ github.workspace }}\sqlite -L${{ github.workspace }}\sqlite" | |
working-directory: examples/c | |
- run: examples/c/demo | |
test-windows-go: | |
runs-on: windows-latest | |
needs: [build-windows-extension] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: sqlite-ulid-windows | |
path: dist/debug/ | |
# sqlite3ext.h aint in windows github action runner, to download it ourself | |
- run: | | |
mkdir -p ${{ github.workspace }}/sqlite | |
cd ${{ github.workspace }}/sqlite | |
curl -LO https://www.sqlite.org/2023/sqlite-amalgamation-3420000.zip | |
unzip sqlite-amalgamation-3420000.zip | |
mv sqlite-amalgamation-3420000/* . | |
- run: echo "${{ github.workspace }}\dist\debug" >> $GITHUB_PATH | |
- run: ls ${{ github.workspace }}\dist\debug | |
- run: ls ${{ github.workspace }}\sqlite | |
- run: go run demo.go | |
working-directory: examples/go | |
env: | |
CGO_LDFLAGS: -L${{ github.workspace }}\dist\debug | |
CGO_CFLAGS: -I${{ github.workspace }}\sqlite | |
CGO_ENABLED: 1 | |
CC: x86_64-w64-mingw32-gcc |