Skip to content

Commit

Permalink
ci: add release
Browse files Browse the repository at this point in the history
  • Loading branch information
saying121 committed Apr 19, 2024
1 parent 4471796 commit cde8fc3
Showing 1 changed file with 160 additions and 0 deletions.
160 changes: 160 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
name: Release

permissions:
contents: write

on:
# release:
# types:
# - published
# - prereleased
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"

env:
BIN_NAME: tidy-borwser
PROJECT_NAME: tidy-borwser

jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
draft: true
# files: |
# ${{ env.BIN_NAME }}-*.zip
generate_release_notes: true

check-if-bin:
runs-on: ubuntu-latest
steps:
- name: Fetch Repository
uses: actions/checkout@v4

- name: Install stable toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1

- name: Install jql
uses: taiki-e/install-action@v2
with:
tool: jql

- name: Searching for bin
id: searching
run: |
result=$(cargo metadata --format-version=1 --no-deps | jql '"packages"|>"targets"<|[1]|>"kind"' | jql '..' -i);
echo "targets=$result" >> "$GITHUB_OUTPUT";
echo kind of targets "$result";
- name: print if skip upploading binaries to github release
if: ${{ !contains(steps.searching.outputs.targets, 'bin') }}
run: echo "This job avoid publishing binaries to github releases for libraries crates"

outputs:
is_bin: ${{ contains(steps.searching.outputs.targets, 'bin') }}

build:
needs: [create-release, check-if-bin]
if: ${{ needs.check-if-bin.outputs.is_bin == 'true' }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
cross: false
build-tool: cargo
- os: ubuntu-latest
target: x86_64-unknown-linux-musl
cross: false
build-tool: cargo
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
cross: true
features: cross
build-tool: cross
- os: ubuntu-latest
target: aarch64-unknown-linux-musl
cross: true
features: cross
build-tool: cross

- os: macos-latest
target: x86_64-apple-darwin
cross: false
build-tool: cargo
- os: macos-latest
target: aarch64-apple-darwin
cross: false
build-tool: cargo

- os: windows-latest
target: x86_64-pc-windows-msvc
cross: false
build-tool: cargo
- os: windows-latest
target: x86_64-pc-windows-gnu
cross: true
build-tool: cargo
- os: windows-latest
target: aarch64-pc-windows-msvc
cross: false
build-tool: cargo

name: ${{ matrix.target }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get sha-commit from tag
id: get_baseline_sha
shell: bash
run: |
latest_sha=$(git rev-list --tags --max-count=1)
echo "sha_tag=$latest_sha" >> "$GITHUB_OUTPUT";
# - name: Install dbus
# if: ${{ !matrix.cross && startsWith(matrix.os, 'ubuntu-') }}
# run: sudo apt update && sudo apt install libdbus-1-dev pkg-config

- name: Checkout source code to specific tag
uses: actions/checkout@v4
with:
ref: ${{ steps.get_baseline_sha.outputs.sha_tag }}

- name: Install Nightly Rust Toolchain
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
targets: ${{ matrix.target }}

- name: Install cross-compilation tools
if: ${{ matrix.cross }}
uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: ${{ matrix.target }}

- uses: taiki-e/install-action@v2
if: ${{ matrix.cross }}
with:
tool: cross

- uses: taiki-e/upload-rust-binary-action@v1
with:
bin: ${{ env.BIN_NAME }}
features: ${{ matrix.features || '' }}
# build-tool: ${{ matrix.build-tool }}
target: ${{ matrix.target }}
# include: attribution
archive: $bin-$tag-$target
token: ${{ secrets.GITHUB_TOKEN }}
# ref: refs/tags/${{ needs.get-version.outputs.tag_version }}
checksum: sha256

0 comments on commit cde8fc3

Please sign in to comment.