docs: real v0.1 content (getting started, inputs/outputs, FAQ, troubleshooting) #32
Workflow file for this run
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: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-node@v5 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: npm | |
| - run: npm ci | |
| - run: npm run format:check | |
| - run: npm run lint | |
| - run: npm run typecheck | |
| - run: npm run build | |
| - name: Verify dist/ matches src/ | |
| run: | | |
| if [ -n "$(git status --porcelain dist)" ]; then | |
| echo "::error::dist/ is out of date with src/. Run 'npm run build' locally and commit the result." | |
| git status dist | |
| git diff --stat dist | |
| exit 1 | |
| fi | |
| self-test: | |
| name: self-test | |
| needs: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Install GMAT (run 1) | |
| id: install-1 | |
| uses: ./ | |
| with: | |
| version: R2026a | |
| cache: true | |
| - name: Snapshot install after run 1 | |
| run: | | |
| find "$GMAT_ROOT" -type f \ | |
| ! -name 'api_startup_file.txt' \ | |
| ! -path '*/__pycache__/*' \ | |
| ! -name '*.pyc' \ | |
| -print0 | sort -z | xargs -0 sha256sum > /tmp/manifest-1.txt | |
| wc -l /tmp/manifest-1.txt | |
| - name: Reset install path | |
| run: rm -rf "$GMAT_ROOT" | |
| - name: Install GMAT (run 2) | |
| id: install-2 | |
| uses: ./ | |
| with: | |
| version: R2026a | |
| cache: true | |
| - name: Assert cache-hit on run 2 | |
| run: | | |
| if [ "${{ steps.install-2.outputs.cache-hit }}" != "true" ]; then | |
| echo "::error::Expected cache-hit=true on run 2, got '${{ steps.install-2.outputs.cache-hit }}'" | |
| exit 1 | |
| fi | |
| - name: Snapshot install after run 2 | |
| run: | | |
| find "$GMAT_ROOT" -type f \ | |
| ! -name 'api_startup_file.txt' \ | |
| ! -path '*/__pycache__/*' \ | |
| ! -name '*.pyc' \ | |
| -print0 | sort -z | xargs -0 sha256sum > /tmp/manifest-2.txt | |
| wc -l /tmp/manifest-2.txt | |
| - name: Cache equivalence | |
| run: | | |
| if ! diff -u /tmp/manifest-1.txt /tmp/manifest-2.txt; then | |
| echo "::error::Cache restore differs from cache-saved state" | |
| exit 1 | |
| fi | |
| echo "Cache equivalence OK" |