name: Release
on:
push:
tags: [ '*' ]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install GDAL
run: sudo apt update && sudo apt install --no-install-recommends -y libgdal-dev
- name: Build
run: cargo build
- name: Build with CLI feature
run: cargo build --features cli
- name: Build with GDAL feature
run: cargo build --release --features with-gdal,cli
- name: Run tests
run: cargo test
- name: Run tests with GDAL
run: echo IGNORE || cargo test --features with-gdal
- name: Publish
env:
CRATE_IO_ACCESS_TOKEN: ${{ secrets.CRATE_IO_ACCESS_TOKEN }}
run: cargo publish --token $CRATE_IO_ACCESS_TOKEN
- name: Download kokai
run: curl -sSL https://github.com/Joxit/kokai/releases/download/$(curl -sSL https://api.github.com/repos/Joxit/kokai/releases/latest | jq -r ".tag_name")/kokai-linux-x86_64 > kokai
- name: Create Release Note
run: chmod +x kokai && ./kokai release --ref ${{ github.ref }} --tag-from-ref . > RELEASE_NOTE.md
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
body_path: RELEASE_NOTE.md
draft: false
prerelease: false
- name: Upload wof with gdal binary
id: upload-release-gdal
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./target/release/wof
asset_content_type: application/octet-stream
asset_name: wof-with-gdal-linux-x86_64
- name: Build with GDAL feature
run: cargo build --release --features cli
- name: Upload wof without gdal binary
id: upload-release-default
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./target/release/wof
asset_content_type: application/octet-stream
asset_name: wof-linux-x86_64