Skip to content

Manual release for coral-cli binary and docker image #25

Manual release for coral-cli binary and docker image

Manual release for coral-cli binary and docker image #25

Workflow file for this run

name: Manual release for coral-cli binary and docker image
on:
workflow_dispatch:
inputs:
version:
description: 'Version (e.g., 1.0.0)'
required: true
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install latest stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Build in release mode
uses: actions-rs/cargo@v1
with:
command: build
args: --release --all-features
- name: Run Tests
uses: actions-rs/cargo@v1
with:
command: test
args: --all
- name: Upload target directory
uses: actions/upload-artifact@v2
with:
name: coral-cli-binary
path: target/release/coral-cli
package-and-release:
needs: build-and-test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Download coral-cli binary
uses: actions/download-artifact@v2
with:
name: coral-cli-binary
path: target/release/
- name: Package Binaries
run: |
mkdir -p release_artifacts && \
tar -czvf release_artifacts/coral-cli_${{ github.event.inputs.version }}.tar.gz -C target/release coral-cli
- name: Upload Artifacts
uses: actions/upload-artifact@v2
with:
name: release_artifacts
path: release_artifacts/
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.event.inputs.version }}
release_name: Release ${{ github.event.inputs.version }}
draft: false
prerelease: false
- name: Upload Release Asset for coral-cli
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./release_artifacts/coral-cli_${{ github.event.inputs.version }}.tar.gz
asset_name: coral_cli_ubuntu_${{ github.event.inputs.version }}.tar.gz
asset_content_type: application/gzip
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push docker image on Docker hub
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/Dockerfile
push: true
tags: pufferfi/coral-cli:${{ github.event.inputs.version }}