Skip to content

chore(deps): update dependency bun to v1.3.8 #784

chore(deps): update dependency bun to v1.3.8

chore(deps): update dependency bun to v1.3.8 #784

Workflow file for this run

name: CI
on:
push:
branches:
- main
- setup/**
pull_request:
branches:
- main
jobs:
format-check:
name: Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Check formatting
run: mise run fmt-check
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Set up Go workspace
run: mise run workspace:setup
- name: Install golangci-lint from source
run: |
# Build golangci-lint from source to support Go 1.25.5
# Pre-built binaries don't support Go 1.25 yet
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
- name: Run linters
run: mise run lint
typecheck:
name: Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Run type checks
run: mise run typecheck
check:
name: All Checks
runs-on: ubuntu-latest
needs: [format-check, lint, typecheck]
steps:
- name: All checks passed
run: echo "All checks passed!"
test:
name: Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
# On Windows, use inline mise tasks (file-based tasks don't work on Windows)
- name: Set up Go workspace (Windows)
if: runner.os == 'Windows'
run: mise run windows:workspace-setup
- name: Set up Go workspace (Unix)
if: runner.os != 'Windows'
run: mise run workspace:setup
- name: Run tests (Windows)
if: runner.os == 'Windows'
run: mise run windows:test
- name: Run tests with coverage and JUnit reports (Unix)
if: runner.os != 'Windows'
run: mise run test-junit
- name: Upload coverage artifact
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-artifact@v6
with:
name: code-coverage
path: coverage.out
retention-days: 7
- name: Upload test results
if: always() && matrix.os != 'windows-latest'
uses: actions/upload-artifact@v6
with:
name: test-results-${{ matrix.os }}
path: test-results/*.xml
retention-days: 7
- name: Publish test results
if: always() && matrix.os != 'windows-latest'
uses: test-summary/action@v2.4
with:
paths: "test-results/*.xml"
show: "all"
- name: Upload to Codecov
if: matrix.os == 'ubuntu-latest'
uses: codecov/codecov-action@v5
with:
files: ./coverage.out
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
build:
name: Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
arch: [amd64, arm64]
exclude:
# Windows arm64 builds aren't well supported in GitHub Actions yet
- os: windows-latest
arch: arm64
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
# On Windows, use inline mise tasks (file-based tasks don't work on Windows)
- name: Set up Go workspace (Windows)
if: runner.os == 'Windows'
run: mise run windows:workspace-setup
- name: Set up Go workspace (Unix)
if: runner.os != 'Windows'
run: mise run workspace:setup
- name: Build binary (Windows)
if: runner.os == 'Windows'
env:
GOARCH: ${{ matrix.arch }}
run: mise run windows:build
- name: Build binary (Unix)
if: runner.os != 'Windows'
env:
GOOS: ${{ matrix.os == 'ubuntu-latest' && 'linux' || 'darwin' }}
GOARCH: ${{ matrix.arch }}
run: mise run build
- name: Test binary execution
if: matrix.arch == 'amd64'
run: |
./bin/morphir${{ matrix.os == 'windows-latest' && '.exe' || '' }} --version
verify:
name: Verify All Modules
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Set up Go workspace
run: mise run workspace:setup
- name: Verify Go modules build
run: mise run verify:modules
coverage-report:
name: Coverage Report
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
needs: test
permissions:
contents: read
actions: read
pull-requests: write
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Download coverage artifact
uses: actions/download-artifact@v7
with:
name: code-coverage
- name: Post coverage comment
uses: fgrosse/go-coverage-report@v1.2.0
continue-on-error: true # Allow failure if baseline coverage doesn't exist yet
with:
coverage-artifact-name: "code-coverage"
coverage-file-name: "coverage.out"
root-package: "github.com/finos/morphir"
integration-test:
name: Integration Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Set up Go workspace
run: mise run workspace:setup
- name: Run morphir-elm integration tests
run: mise run test:integration-morphir-elm
- name: Run all integration tests
run: mise run test:integration
test-external-consumption:
name: Test External Consumption (Release PRs)
runs-on: ubuntu-latest
if: github.event_name == 'pull_request' && (contains(github.event.pull_request.title, 'release') || contains(github.event.pull_request.labels.*.name, 'release'))
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install mise
uses: jdx/mise-action@v3
with:
version: 2026.1.1
- name: Test cmd/morphir builds without go.work
run: mise run test-external