name: Integration Tests env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' 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@v6 - name: Setup Go uses: actions/setup-go@v6 with: go-version: '1.25.x' - name: Run Dagger Integration Pipeline env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 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@v6 - name: Setup Go uses: actions/setup-go@v6 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 --gui 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!"