Manual release for coral-cli binary and docker image #25
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: 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 }} |