blob: 0a1fac40a0e6debc51bcfbfa6bc332e4eddfad5b [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Bindings Zig CI
on:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
paths:
- "core/**"
- "bindings/c/**"
- "bindings/zig/**"
- ".github/workflows/ci_bindings_zig.yml"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Setup Zig
shell: bash
run: |
ZIG_VERSION=0.14.0
case "${RUNNER_OS}-${RUNNER_ARCH}" in
Linux-X64) ZIG_TARGET=linux-x86_64 ;;
*)
echo "unsupported host for Zig: ${RUNNER_OS}-${RUNNER_ARCH}" >&2
exit 1
;;
esac
ZIG_HOME="${RUNNER_TOOL_CACHE}/zig/${ZIG_VERSION}"
mkdir -p "${ZIG_HOME}"
curl -fsSL "https://ziglang.org/download/${ZIG_VERSION}/zig-${ZIG_TARGET}-${ZIG_VERSION}.tar.xz" \
| tar -xJ --strip-components=1 -C "${ZIG_HOME}"
echo "${ZIG_HOME}" >> "${GITHUB_PATH}"
- name: Setup Rust toolchain
uses: ./.github/actions/setup
- name: Install C build tools
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config uuid-dev
- name: Build Zig binding
working-directory: bindings/zig
run: zig build libopendal_c
- name: Check diff
run: git diff --exit-code
- name: Check
working-directory: bindings/zig
run: zig fmt --check .
- name: Run tests
working-directory: bindings/zig
run: zig build test --summary all