chore(release): prepare for 0.1.32 #22
Workflow file for this run
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: cd | |
on: | |
push: | |
tags: | |
- "*.*.*" | |
env: | |
IMAGE_NAME: rapiddb | |
IMAGE_CACHE: ghcr.io/kruserr/rapiddb/rapiddb:cache | |
jobs: | |
rustfmt: | |
name: Formatting | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Formatting | |
run: cargo fmt --all -- --check | |
clippy: | |
name: Lint | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Lint | |
run: cargo clippy --all-targets --all-features -- -Dwarnings | |
test: | |
name: Test | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
if: github.event_name != 'pull_request' | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Checkout | |
if: github.event_name == 'pull_request' | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 0 | |
- name: Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Setup cargo-tarpaulin | |
run: | | |
curl -s https://api.github.com/repos/xd009642/tarpaulin/releases/tags/0.22.0 | \ | |
grep "browser_download_url.*tar.gz" | cut -d : -f 2,3 | tr -d \" | wget -qi - | |
tar -xzf cargo-tarpaulin-*.tar.gz | |
mv cargo-tarpaulin ~/.cargo/bin/ | |
- name: Run tests | |
run: cargo tarpaulin --out Xml --verbose | |
- name: Upload reports to codecov | |
continue-on-error: true | |
uses: codecov/codecov-action@v3 | |
with: | |
name: code-coverage-report | |
file: cobertura.xml | |
flags: unit-tests | |
fail_ci_if_error: true | |
verbose: true | |
publish-crates-io: | |
name: Publish on crates.io | |
needs: | |
- rustfmt | |
- clippy | |
- test | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Publish | |
run: | | |
cargo publish -p rapiddb --token ${{ secrets.CARGO_TOKEN }} | |
cargo publish -p rapiddb-web --token ${{ secrets.CARGO_TOKEN }} | |
publish-docker: | |
name: Publish on GitHub Packages and Docker Hub | |
needs: | |
- rustfmt | |
- clippy | |
- test | |
runs-on: ubuntu-22.04 | |
if: github.event_name == 'push' | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
registry: docker.io | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Extract version | |
id: extract_version | |
run: | | |
VERSION=${GITHUB_REF#refs/tags/} | |
echo "::set-output name=version::${VERSION}" | |
echo "::set-output name=major::${VERSION%%.*}" | |
echo "::set-output name=minor::${VERSION%.*}" | |
echo "::set-output name=patch::${VERSION##*.}" | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ./tooling/Dockerfile | |
push: true | |
tags: | | |
ghcr.io/${{ github.repository }}:latest | |
ghcr.io/${{ github.repository }}:${{ steps.extract_version.outputs.version }} | |
ghcr.io/${{ github.repository }}:${{ steps.extract_version.outputs.major }} | |
ghcr.io/${{ github.repository }}:${{ steps.extract_version.outputs.minor }} | |
docker.io/${{ github.repository }}:latest | |
docker.io/${{ github.repository }}:${{ steps.extract_version.outputs.version }} | |
docker.io/${{ github.repository }}:${{ steps.extract_version.outputs.major }} | |
docker.io/${{ github.repository }}:${{ steps.extract_version.outputs.minor }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache |