docs(example): note CE0463 as known issue for dgTickets/fStatus widgets #5
This file contains hidden or 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: CI | |
| on: | |
| push: | |
| pull_request: | |
| schedule: | |
| # Every day at 02:00 UTC | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| # Condition reused across nightly-only jobs | |
| env: | |
| IS_NIGHTLY: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} | |
| jobs: | |
| # ── Runs on every push / PR ──────────────────────────────────────────────── | |
| build-test-lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: ./.github/actions/setup-go-antlr | |
| - name: Build | |
| run: make build | |
| - name: Test | |
| run: make test | |
| - name: Check MDL example scripts | |
| run: | | |
| FAILED=0 | |
| for f in mdl-examples/doctype-tests/*.mdl; do | |
| case "$f" in *.test.mdl) continue ;; esac | |
| NAME=$(basename "$f") | |
| echo "::group::$NAME" | |
| if ./bin/mxcli check "$f"; then | |
| echo "PASS: $NAME" | |
| else | |
| echo "::error file=$f::Syntax check failed: $NAME" | |
| FAILED=1 | |
| fi | |
| echo "::endgroup::" | |
| done | |
| exit $FAILED | |
| - name: Setup mxbuild | |
| run: ./bin/mxcli setup mxbuild --version 11.9.0 | |
| - name: Integration tests | |
| run: make test-integration | |
| timeout-minutes: 30 | |
| - name: Lint Go | |
| run: make lint-go | |
| - name: Vulnerability scan | |
| run: | | |
| go install golang.org/x/vuln/cmd/govulncheck@latest | |
| govulncheck ./... | |
| # ── Nightly: multi-version integration matrix ────────────────────────────── | |
| multi-version: | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| mendix-version: ['10.24.19.104498', '11.6.6', '11.10.0'] | |
| fail-fast: false | |
| name: test (Mendix ${{ matrix.mendix-version }}) | |
| steps: | |
| - uses: ./.github/actions/setup-go-antlr | |
| - name: Build | |
| run: make build | |
| - name: Test | |
| run: make test | |
| - name: Setup mxbuild ${{ matrix.mendix-version }} | |
| run: ./bin/mxcli setup mxbuild --version ${{ matrix.mendix-version }} | |
| - name: Integration tests (Mendix ${{ matrix.mendix-version }}) | |
| run: make test-integration | |
| timeout-minutes: 30 | |
| # ── Nightly: exprcheck round-trip regression gate ────────────────────────── | |
| exprcheck-roundtrip: | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| name: exprcheck round-trip (regression gate) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: ./.github/actions/setup-go-antlr | |
| - name: Round-trip exprcheck | |
| run: make roundtrip | |
| timeout-minutes: 5 | |
| # ── Nightly: publish pre-release ─────────────────────────────────────────── | |
| nightly-release: | |
| needs: multi-version | |
| if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: ./.github/actions/setup-go-antlr | |
| with: | |
| fetch-depth: 0 | |
| - uses: oven-sh/setup-bun@v2 | |
| - name: Check for new commits since last nightly | |
| id: check | |
| run: | | |
| LAST_NIGHTLY=$(gh release view nightly --json publishedAt -q .publishedAt 2>/dev/null || echo "") | |
| if [ -n "$LAST_NIGHTLY" ]; then | |
| COMMITS=$(git log --since="$LAST_NIGHTLY" --oneline origin/main | wc -l) | |
| if [ "$COMMITS" -eq 0 ]; then | |
| echo "No new commits since last nightly, skipping." | |
| echo "skip=true" >> "$GITHUB_OUTPUT" | |
| exit 0 | |
| fi | |
| echo "$COMMITS new commit(s) since last nightly." | |
| fi | |
| echo "skip=false" >> "$GITHUB_OUTPUT" | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Build release binaries | |
| if: steps.check.outputs.skip != 'true' | |
| run: VERSION=nightly-$(date -u +%Y%m%d)-$(git rev-parse --short HEAD) make release | |
| - name: Generate changelog | |
| if: steps.check.outputs.skip != 'true' | |
| id: changelog | |
| run: | | |
| { | |
| echo "body<<NIGHTLY_EOF" | |
| echo "**Nightly build from \`main\` — $(date -u +%Y-%m-%d)**" | |
| echo "" | |
| echo "Commit: [\`$(git rev-parse --short HEAD)\`](https://github.com/${{ github.repository }}/commit/$(git rev-parse HEAD))" | |
| echo "" | |
| echo "### Recent changes" | |
| echo "" | |
| git log --oneline -20 origin/main | |
| echo "" | |
| echo "> This is an automated pre-release build. Use tagged releases for production." | |
| echo "NIGHTLY_EOF" | |
| } >> "$GITHUB_OUTPUT" | |
| - name: Delete previous nightly release | |
| if: steps.check.outputs.skip != 'true' | |
| run: gh release delete nightly --cleanup-tag -y 2>/dev/null || true | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| - name: Create nightly release | |
| if: steps.check.outputs.skip != 'true' | |
| run: | | |
| gh release create nightly \ | |
| --prerelease \ | |
| --title "Nightly $(date -u +%Y-%m-%d)" \ | |
| --notes "${{ steps.changelog.outputs.body }}" \ | |
| bin/mxcli-* | |
| env: | |
| GH_TOKEN: ${{ github.token }} |