Skip to content

Merge pull request #4 from ideal-world/refactor-cluster #71

Merge pull request #4 from ideal-world/refactor-cluster

Merge pull request #4 from ideal-world/refactor-cluster #71

Workflow file for this run

name: CICD
on:
push:
branches:
- release
- master
tags:
- 'release-*'
pull_request:
branches:
- release
- master
env:
ARTIFACT_DIR: release-artifacts
jobs:
model:
runs-on: ubuntu-22.04
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Init rust environment
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: davidB/rust-cargo-make@v1
- name: Cache rust
uses: Swatinem/rust-cache@v2
- name: Check format
run: cargo fmt -p asteroid-mq-model -- --check
- name: Check clippy
run: cargo clippy -p asteroid-mq-model --all-features
- name: Package
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo package -p asteroid-mq-model
- name: Cargo login z
run: cargo login ${{ secrets.CRATES_TOKEN }}
- name: Publish dry run
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq-model --dry-run
- name: Publish
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq-model
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
docker-images: false
swap-storage: false
android: true
dotnet: true
haskell: true
large-packages: true
- name: Upload to codecov.io
uses: codecov/codecov-action@v2
with:
token: ${{secrets.CODECOV_TOKEN}}
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: cobertura.xml
server:
needs: model
runs-on: ubuntu-22.04
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Init rust environment
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: davidB/rust-cargo-make@v1
- name: Cache rust
uses: Swatinem/rust-cache@v2
- name: Check format
run: cargo fmt -p asteroid-mq -- --check
- name: Check clippy
run: cargo clippy -p asteroid-mq --all-features
- name: Package
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo package -p asteroid-mq
- name: Cargo login
run: cargo login ${{ secrets.CRATES_TOKEN }}
- name: Publish dry run
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq --dry-run
- name: Publish
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
docker-images: false
swap-storage: false
android: true
dotnet: true
haskell: true
large-packages: true
- name: Upload to codecov.io
uses: codecov/codecov-action@v2
with:
token: ${{secrets.CODECOV_TOKEN}}
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: cobertura.xml
rust-sdk:
needs: [model]
runs-on: ubuntu-22.04
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Init rust environment
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
- uses: davidB/rust-cargo-make@v1
- name: Cache rust
uses: Swatinem/rust-cache@v2
- name: Check format
run: cargo fmt -p asteroid-mq-sdk -- --check
- name: Check clippy
run: cargo clippy -p asteroid-mq-sdk --all-features
- name: Package
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo package -p asteroid-mq-sdk
- name: Cargo login
run: cargo login ${{ secrets.CRATES_TOKEN }}
- name: Publish dry run
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq-sdk --dry-run
- name: Publish
if: ${{ startsWith(github.ref, 'refs/tags/release') }}
run: cargo publish -p asteroid-mq-sdk
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false
# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
docker-images: false
swap-storage: false
android: true
dotnet: true
haskell: true
large-packages: true
- name: Upload to codecov.io
uses: codecov/codecov-action@v2
with:
token: ${{secrets.CODECOV_TOKEN}}
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: cobertura.xml
java-sdk:
runs-on: ubuntu-22.04
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Init rust environment
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
server-username: OSSRH_USERNAME # env variable for username in deploy
server-password: OSSRH_TOKEN # env variable for token in deploy
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Build with Maven
run: mvn -B package --file sdk/asteroid-java-sdk/pom.xml
- name: Publish to Maven Central
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
if: ${{ startsWith(github.ref, 'refs/tags/release-java-sdk-') }}
run: |
mvn \
--no-transfer-progress \
--batch-mode \
deploy \
-X \
--file sdk/asteroid-java-sdk/pom.xml
release-js-sdk:
runs-on: ubuntu-latest
name: publish
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: cd sdk/typescript && npm ci
- name: Build
run: cd sdk/typescript && npm run build
- name: Publish
if: ${{ startsWith(github.ref, 'refs/tags/release-typescript-sdk-') }}
run: cd sdk/typescript && npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}