Bump docker/setup-buildx-action from 3 to 4 #32
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: OxCaml Integration Tests | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_run: | |
| workflows: ["Build and Push OxCaml Images"] | |
| types: [completed] | |
| workflow_dispatch: | |
| # Container jobs run as root (required by actions/checkout), so we must | |
| # point opam at the vscode user's opam root and add its bin to PATH. | |
| env: | |
| OPAMROOT: /home/vscode/.opam | |
| jobs: | |
| # ============================================================================ | |
| # Test OxCaml switch | |
| # ============================================================================ | |
| test-oxcaml: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run OxCaml tests | |
| run: | | |
| ./test/test-oxcaml-switch.sh | |
| # ============================================================================ | |
| # Test LSP server | |
| # ============================================================================ | |
| test-lsp: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run LSP tests | |
| run: | | |
| ./test/test-lsp.sh oxcaml | |
| # ============================================================================ | |
| # Test dune package management | |
| # ============================================================================ | |
| test-dune-pkg: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run dune pkg tests | |
| run: | | |
| ./test/test-dune-pkg.sh | |
| # ============================================================================ | |
| # Test editor integrations | |
| # ============================================================================ | |
| test-vscode: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Install devcontainer CLI | |
| run: npm install -g @devcontainers/cli | |
| - name: Validate .devcontainer-oxcaml/devcontainer.json | |
| run: devcontainer read-configuration --workspace-folder . --config .devcontainer-oxcaml/devcontainer.json | |
| - name: Validate .devcontainer-oxcaml-from-scratch/devcontainer.json | |
| run: devcontainer read-configuration --workspace-folder . --config .devcontainer-oxcaml-from-scratch/devcontainer.json | |
| - name: Run VS Code tests | |
| run: | | |
| ./test/test-vscode.sh | |
| test-emacs: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run Emacs tests | |
| run: | | |
| ./test/test-emacs.sh | |
| test-neovim: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run Neovim tests | |
| run: | | |
| ./test/test-neovim.sh | |
| test-claude: | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ghcr.io/${{ github.repository_owner }}/oxcaml-devcontainer:latest | |
| options: --user root | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Run Claude Code tests | |
| run: | | |
| ./test/test-claude.sh | |
| # ============================================================================ | |
| # Summary job (for required status checks) | |
| # ============================================================================ | |
| test-summary: | |
| runs-on: ubuntu-latest | |
| needs: | |
| - test-oxcaml | |
| - test-lsp | |
| - test-dune-pkg | |
| - test-vscode | |
| - test-emacs | |
| - test-neovim | |
| - test-claude | |
| if: always() | |
| steps: | |
| - name: Check test results | |
| run: | | |
| if [ "${{ needs.test-oxcaml.result }}" != "success" ]; then | |
| echo "test-oxcaml failed" | |
| exit 1 | |
| fi | |
| if [ "${{ needs.test-lsp.result }}" != "success" ]; then | |
| echo "test-lsp failed" | |
| exit 1 | |
| fi | |
| # Note: Some tests may be expected to have warnings, not failures | |
| echo "All critical tests passed" |