name: Integration Tests on: push: branches: - main - dev pull_request: branches: - main - dev jobs: test-linux: name: Linux Integration - ${{ matrix.os }} runs-on: ubuntu-latest strategy: matrix: os: [debian, arch, fedora] fail-fast: false steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.25.x' - name: Run Dagger Integration Pipeline run: | go run ci/main.go --os ${{ matrix.os }} test-mac: name: macOS Integration runs-on: macos-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.25.x' - name: Build bootstrap binary run: | go build -o bootstrap_environment . - name: Pre-create ~/.pyenv directory run: | mkdir -p ~/.pyenv - name: Run bootstrap tool env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | echo y | ./bootstrap_environment --only custom --no-vm --no-ai conclusion: name: Final Status Check needs: [test-linux, test-mac] runs-on: ubuntu-latest if: always() steps: - name: Check dependency jobs run: | # Check the results of matrix and mac jobs # GHA will fail the workflow if this step exits with error if [ "${{ needs.test-linux.result }}" != "success" ] || [ "${{ needs.test-mac.result }}" != "success" ]; then echo "One or more integration checks failed!" exit 1 fi echo "All integration checks passed!"