name: build-image on: push: branches: [main] workflow_dispatch: permissions: contents: read packages: write jobs: test: runs-on: ubuntu-latest timeout-minutes: 15 env: API_KEY: test ATHLETE_ID: i1 steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install (editable, with dev extras) run: pip install --quiet -e ".[dev]" - name: Test + coverage gate (>=90%) run: pytest build: needs: test runs-on: ubuntu-latest timeout-minutes: 20 env: IMAGE: git.farh.net/farhoodlabs/intervalsicu-mcp DOCKER_BUILDKIT: "1" steps: - name: Checkout uses: actions/checkout@v4 - name: Environment run: | docker version || true df -h / || true - name: Login to registry run: | echo "${{ secrets.REGISTRY_TOKEN }}" | docker login git.farh.net -u cpfarhood --password-stdin - name: Build image run: | docker build --progress=plain \ -t "${IMAGE}:latest" \ -t "${IMAGE}:${GITHUB_SHA}" \ . - name: Push image run: | docker push "${IMAGE}:latest" docker push "${IMAGE}:${GITHUB_SHA}" echo "pushed ${IMAGE}:latest and ${IMAGE}:${GITHUB_SHA}"