name: Build and Push Docker Image on: push: branches: - main workflow_dispatch: jobs: test-and-build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 # ----------------------------- # Python setup for tests # ----------------------------- - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pytest - name: Run tests (TEST_MODE) env: TEST_MODE: "true" PYTHONPATH: . run: | pytest -v # ----------------------------- # Docker login # ----------------------------- - name: Login to Gitea Container Registry uses: docker/login-action@v3 with: registry: ${{ vars.REGISTRY_URL }} username: ${{ vars.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} # ----------------------------- # Docker metadata # ----------------------------- - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: images: ${{ vars.REGISTRY_URL }}/mail2sms tags: | type=raw,value=latest type=sha # ----------------------------- # Build & Push (only if tests passed) # ----------------------------- - name: Build and Push uses: docker/build-push-action@v5 with: context: . push: true tags: ${{ vars.REGISTRY_URL }}/mail2sms:latest