-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add rust client generation * Update README.md * Fix warnings * Update generated code * Change program name * Update rust version * Update crate name * Fix configuration * Update CI * Fix script path * Set executable flag * Fix build directory * Fix names * Update lock files * Fix directory name * Fix file filter * Fix IDL name * Remove program badge * Tweak solana-program version * Update getting started * Use default runner * Fix permissions * Add contributing section * Update solana version * Add generate clients note
- Loading branch information
Showing
58 changed files
with
7,920 additions
and
4,547 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
CARGO_TERM_COLOR=always | ||
NODE_VERSION=16.x | ||
PROGRAMS=["mpl-project-name"] | ||
RUST_VERSION=1.65.0 | ||
SOLANA_VERSION=1.14.13 | ||
RUST_VERSION=1.70.0 | ||
SOLANA_VERSION=1.16.18 |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
name: Build Rust Client | ||
|
||
on: | ||
workflow_call: | ||
inputs: | ||
rust: | ||
type: string | ||
solana: | ||
type: string | ||
workflow_dispatch: | ||
inputs: | ||
rust: | ||
description: Rust version | ||
default: 1.70.0 | ||
required: true | ||
type: string | ||
solana: | ||
description: Solana version | ||
default: 1.16.17 | ||
required: true | ||
type: string | ||
|
||
env: | ||
CACHE: true | ||
|
||
jobs: | ||
build_sdk: | ||
name: Build | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Git checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Load environment variables | ||
run: cat .github/.env >> $GITHUB_ENV | ||
|
||
- name: Install Rust | ||
uses: metaplex-foundation/actions/install-rust@v1 | ||
with: | ||
toolchain: ${{ inputs.rust || env.RUST_VERSION }} | ||
|
||
- name: Install Solana | ||
uses: metaplex-foundation/actions/install-solana@v1 | ||
with: | ||
version: ${{ inputs.solana || env.SOLANA_VERSION }} | ||
cache: ${{ env.CACHE }} | ||
|
||
- name: Run cargo clippy | ||
uses: actions-rs/cargo@v1 | ||
with: | ||
command: clippy | ||
args: --all-targets --all-features --no-deps --manifest-path ./clients/rust/Cargo.toml | ||
|
||
- name: Build Rust client | ||
shell: bash | ||
working-directory: clients/rust | ||
run: cargo build --all-features --release | ||
|
||
- name: Upload Rust client builds | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: rust-client-builds | ||
# First wildcard ensures exported paths are consistently under the clients folder. | ||
path: ./client*/rust/target/release/*mpl_project_name* | ||
if-no-files-found: error |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
name: Publish Rust Client | ||
|
||
on: | ||
workflow_dispatch: | ||
inputs: | ||
level: | ||
description: Level | ||
required: true | ||
default: patch | ||
type: choice | ||
options: | ||
- patch | ||
- minor | ||
- major | ||
- rc | ||
- beta | ||
- alpha | ||
- release | ||
- version | ||
version: | ||
description: Version | ||
required: false | ||
type: string | ||
dry_run: | ||
description: Dry run | ||
required: true | ||
default: true | ||
type: boolean | ||
|
||
env: | ||
CACHE: true | ||
|
||
jobs: | ||
build_programs: | ||
name: Programs | ||
uses: ./.github/workflows/build-programs.yml | ||
secrets: inherit | ||
|
||
build_rust_client: | ||
name: Rust Client | ||
uses: ./.github/workflows/build-rust-client.yml | ||
secrets: inherit | ||
|
||
test_rust_client: | ||
name: Rust Client | ||
needs: [build_programs, build_rust_client] | ||
uses: ./.github/workflows/test-rust-client.yml | ||
secrets: inherit | ||
|
||
publish_crate: | ||
name: Rust Client / Publish Crate | ||
runs-on: ubuntu-latest | ||
needs: test_rust_client | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Git checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Load environment variables | ||
run: cat .github/.env >> $GITHUB_ENV | ||
|
||
- name: Install Rust | ||
uses: metaplex-foundation/actions/install-rust@v1 | ||
with: | ||
toolchain: ${{ env.RUST_VERSION }} | ||
|
||
- name: Install cargo-release | ||
uses: metaplex-foundation/actions/install-cargo-release@v1 | ||
with: | ||
cache: ${{ env.CACHE }} | ||
|
||
- name: Publish crate | ||
working-directory: ./clients/rust | ||
run: | | ||
if [ "${{ inputs.level }}" == "version" ]; then | ||
BUMP=${{ inputs.version }} | ||
else | ||
BUMP=${{ inputs.level }} | ||
fi | ||
if [ "${{ inputs.dry_run }}" == "false" ]; then | ||
OPTIONS="--no-push --no-tag --no-confirm --execute" | ||
git config user.name ${{ env.COMMIT_USER_NAME }} | ||
git config user.email ${{ env.COMMIT_USER_EMAIL }} | ||
fi | ||
cargo login ${{ secrets.CRATES_TOKEN }} | ||
cargo release $BUMP $OPTIONS | ||
if [ "${{ inputs.dry_run }}" == "false" ]; then | ||
git reset --soft HEAD~1 | ||
fi | ||
CLIENT_NAME=`grep -E '^name\s*=' Cargo.toml | awk -F '"' '{print $2}'` | ||
CLIENT_VERSION=`grep -E '^version\s*=' Cargo.toml | awk -F '"' '{print $2}'` | ||
echo CLIENT_NAME="${CLIENT_NAME}" >> $GITHUB_ENV | ||
echo CLIENT_VERSION="${CLIENT_VERSION}" >> $GITHUB_ENV | ||
- name: Commit and tag new version | ||
uses: stefanzweifel/git-auto-commit-action@v4 | ||
if: github.event.inputs.dry_run == 'false' | ||
with: | ||
commit_message: "chore: Release ${{ env.CLIENT_NAME }} version ${{ env.CLIENT_VERSION }}" | ||
tagging_message: ${{ env.CLIENT_NAME }}@v${{ env.CLIENT_VERSION }} |
File renamed without changes.
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
Oops, something went wrong.