wip #441
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: Release | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- "main" | |
- "develop" | |
jobs: | |
integration-tests: | |
name: "π§ͺ Integration Tests" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-just | |
- uses: ./.github/actions/setup-nodejs | |
- uses: ./.github/actions/setup-rust | |
- uses: ./.github/actions/build-mach | |
with: { profile: debug } | |
- name: "Integration tests" | |
run: | | |
source .github/actions/setup-env/setup-env.bash | |
just integration-tests | |
unit-tests: | |
name: "π§ͺ Unit Tests" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-just | |
- uses: ./.github/actions/setup-nodejs | |
- uses: ./.github/actions/setup-rust | |
- uses: ./.github/actions/build-mach | |
with: { profile: debug } | |
- name: "Unit tests" | |
run: | | |
source .github/actions/setup-env/setup-env.bash | |
just unit-tests | |
build: | |
strategy: | |
matrix: | |
config: | |
- name: π₯ Linux AMD64 | |
os: linux | |
arch: amd64 | |
runner: ubuntu-latest | |
- name: π₯ Linux ARM64 | |
os: linux | |
arch: arm64 | |
runner: ubuntu-latest | |
- name: π MacOS AMD64 | |
os: macos | |
arch: amd64 | |
runner: macos-13 | |
- name: π MacOS ARM64 | |
os: macos | |
arch: arm64 | |
runner: macos-14 | |
- name: π¦ Windows AMD64 | |
os: windows | |
arch: amd64 | |
runner: windows-latest | |
- name: π¦ Windows ARM64 | |
os: windows | |
arch: arm64 | |
runner: windows-latest | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.runner }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-just | |
- uses: ./.github/actions/setup-nodejs | |
- uses: ./.github/actions/setup-rust | |
- uses: ./.github/actions/setup-env | |
- uses: ./.github/actions/build-mach | |
with: | |
os: "${{ matrix.config.os }}" | |
arch: "${{ matrix.config.arch }}" | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: mach-${{ matrix.config.os }}-${{ matrix.config.arch }} | |
path: ${{ github.workspace }}/artifacts/**/* | |
if-no-files-found: error | |
retention-days: 1 | |
npm-package: | |
name: "π¦ NPM" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/setup-just | |
- uses: ./.github/actions/setup-nodejs | |
- uses: ./.github/actions/setup-rust | |
- uses: ./.github/actions/setup-env | |
- uses: ./.github/actions/build-npm | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.job }} | |
path: ${{ github.workspace }}/artifacts/**/* | |
if-no-files-found: error | |
retention-days: 1 | |
# publish-github-release: | |
# name: "π Github Release" | |
# runs-on: ubuntu-latest | |
# needs: [unit-tests,integration-tests, npm-package, build] | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: ./.github/actions/setup-nodejs | |
# - uses: ./.github/actions/setup-env | |
# - uses: actions/download-artifact@v4 | |
# with: | |
# path: ${{ github.workspace }}/artifacts | |
# - name: Publish` Github Release | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# run: | | |
# source .github/actions/setup-env/setup-env.bash | |
# bash .github/workflows/release/publish-github-release.bash | |
# publish-npm-package: | |
# name: "π Publish: NPM" | |
# runs-on: ubuntu-latest | |
# needs: [unit-tests, integration-tests, npm-package, build] | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: ./.github/actions/setup-nodejs | |
# - uses: ./.github/actions/setup-env | |
# - uses: actions/download-artifact@v4 | |
# with: | |
# path: ${{ github.workspace }}/artifacts | |
# - name: Publish NPM Package | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
# run: | | |
# source .github/actions/setup-env/setup-env.bash | |
# bash .github/workflows/release/publish-npm-package.bash | |
# publish-crate: | |
# name: "π Publish: Crates.io" | |
# runs-on: ubuntu-latest | |
# needs: [unit-tests, integration-tests, npm-package, build] | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: ./.github/actions/setup-just | |
# - uses: ./.github/actions/setup-nodejs | |
# - uses: ./.github/actions/setup-rust | |
# - uses: ./.github/actions/setup-env | |
# - uses: ./.github/actions/build-mach | |
# - name: Publish Crate | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# CRATES_IO_API_TOKEN: ${{ secrets.CRATES_IO_API_TOKEN }} | |
# run: | | |
# source .github/actions/setup-env/setup-env.bash | |
# bash .github/workflows/release/publish-crate.bash |