Skip to content

wip

wip #441

Workflow file for this run

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