diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000..9289d3e10 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,55 @@ +# 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: Publish + +on: + push: + tags: + - '*' + pull_request: + branches: + - main + paths: + - ".github/workflows/publish.yml" + workflow_dispatch: + +jobs: + publish: + runs-on: ubuntu-latest + strategy: + # Publish package one by one instead of flooding the registry + max-parallel: 1 + matrix: + # Order here is sensitive, as it will be used to determine the order of publishing + package: + - "crates/iceberg" + - "crates/catalog/hms" + - "crates/catalog/rest" + steps: + - uses: actions/checkout@v4 + - name: Dryrun ${{ matrix.package }} + working-directory: ${{ matrix.package }} + run: cargo publish --all-features --dry-run + + - name: Publish ${{ matrix.package }} + working-directory: ${{ matrix.package }} + # Only publish if it's a tag and the tag is not a pre-release + if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }} + run: cargo publish --all-features + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 8301d1f29..2d61eee84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,8 +42,8 @@ derive_builder = "0.13.0" either = "1" env_logger = "0.11.0" futures = "0.3" -iceberg = { path = "./crates/iceberg" } -iceberg-catalog-rest = { path = "./crates/catalog/rest" } +iceberg = { version = "0.2.0", path = "./crates/iceberg" } +iceberg-catalog-rest = { version = "0.2.0", path = "./crates/catalog/rest" } itertools = "0.12" lazy_static = "1" log = "^0.4"