Skip to content

Commit

Permalink
feat: Initial 0.1.0 codebase
Browse files Browse the repository at this point in the history
Signed-off-by: Chawye Hsu <chawyehsu@hotmail.com>
  • Loading branch information
chawyehsu committed Feb 8, 2023
1 parent c6accee commit b1a1bd8
Show file tree
Hide file tree
Showing 8 changed files with 1,090 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# On Windows MSVC, statically link the C runtime so that the resulting EXE does
# not depend on the vcruntime DLL.
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
[target.i686-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
156 changes: 156 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
name: CICD
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
jobs:
# Check code format
check_cargo_fmt:
name: Check 'cargo fmt'
runs-on: ubuntu-latest
steps:
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: ${{ matrix.target }}
components: rustfmt
- uses: actions/checkout@v3
- run: cargo fmt -- --check

# Create/Update release PR
release_please:
name: Release Please
needs: check_cargo_fmt
runs-on: ubuntu-latest
if: github.repository == 'chawyehsu/nostr-vanity-address-generator' && github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
release-type: rust
outputs:
release_created: ${{ steps.release.outputs.release_created }}
tag_name: ${{ steps.release.outputs.tag_name }}
# Build artifacts
github_build:
name: Build release binaries
needs: release_please
if: ${{ needs.release_please.outputs.release_created == 'true' }}
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
name: nostrgen-x86_64-unknown-linux-gnu.tar.gz

- target: i686-unknown-linux-gnu
os: ubuntu-latest
name: nostrgen-i686-unknown-linux-gnu.tar.gz

- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
name: nostrgen-aarch64-unknown-linux-gnu.tar.gz

- target: x86_64-unknown-freebsd
os: ubuntu-latest
name: nostrgen-x86_64-unknown-freebsd.tar.gz

- target: x86_64-apple-darwin
os: macOS-11
name: nostrgen-x86_64-apple-darwin.tar.gz

- target: aarch64-apple-darwin
os: macOS-11
name: nostrgen-aarch64-apple-darwin.tar.gz

- target: x86_64-pc-windows-msvc
os: windows-latest
name: nostrgen-x86_64-pc-windows-msvc.zip

- target: i686-pc-windows-msvc
os: windows-latest
name: nostrgen-i686-pc-windows-msvc.zip

- target: aarch64-pc-windows-msvc
os: windows-latest
name: nostrgen-aarch64-pc-windows-msvc.zip

runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- name: Checkout Source
uses: actions/checkout@v3

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: ${{ matrix.target }}

- name: Build
uses: actions-rs/cargo@v1.0.3
with:
command: build
args: --release --locked --target ${{ matrix.target }}
use-cross: ${{ matrix.os == 'ubuntu-latest' }}

- name: Strip artifacts [Linux]
if: matrix.os == 'ubuntu-latest'
shell: bash
run: |
case ${{ matrix.target }} in
aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
esac
STRIP="strip"
case ${{ matrix.target }} in
aarch64-unknown-linux-gnu) STRIP="aarch64-linux-gnu-strip" ;;
esac;
"${STRIP}" target/${{ matrix.target }}/release/nostrgen
- name: Prepare artifacts [Windows]
if: matrix.os == 'windows-latest'
run: |
cd target/${{ matrix.target }}/release
7z a ../../../${{ matrix.name }} nostrgen.exe
cd -
- name: Prepare artifacts [-nix]
if: matrix.os != 'windows-latest'
run: |
cd target/${{ matrix.target }}/release
tar czvf ../../../${{ matrix.name }} nostrgen
cd -
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.name }}
path: ${{ matrix.name }}

# Create GitHub release with Rust build targets and release notes
upload_artifacts:
name: Add Build Artifacts to Release
needs: [release_please, github_build]
runs-on: ubuntu-latest
steps:
- name: Prepare Artifacts
uses: actions/download-artifact@v3

- name: Prepare Checksums
run: for file in nostrgen-*/nostrgen-*; do openssl dgst -sha256 -r "$file" | awk '{print $1}' > "${file}.sha256"; done

- name: Publish Release
run: gh release edit ${{ needs.release_please.outputs.tag_name }} --draft=false --repo=chawyehsu/nostr-vanity-address-generator
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Add Artifacts to Release
uses: softprops/action-gh-release@v1
with:
files: nostrgen-*/nostrgen-*
tag_name: ${{ needs.release_please.outputs.tag_name }}
Empty file added CHANGELOG.md
Empty file.
Loading

0 comments on commit b1a1bd8

Please sign in to comment.