diff --git a/.github/workflows/django.yml b/.github/workflows/django.yml new file mode 100644 index 0000000..cb3bec0 --- /dev/null +++ b/.github/workflows/django.yml @@ -0,0 +1,71 @@ +name: Django CI + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + python-version: [3.9] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install Dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run Tests + run: | + python manage.py test + + push_to_registry: + name: Push Docker image to Docker Hub + runs-on: ubuntu-latest + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Log in to Docker Hub + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + with: + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: dudosart/btre-pro + + - name: Set image version + run: echo "::set-env name=IMAGE_VERSION::$(date +'%Y%m%d%H%M%S')" + + - name: Debug Meta Tags + run: echo "Meta Tags:${{ steps.meta.outputs.tags }}" + + - name: Debug Image Version + run: echo "Image Version:${{ env.IMAGE_VERSION }}" + + - name: Build and push Docker image + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 + with: + context: . + file: ./Dockerfile + push: true + tags: | + dudosart/btre-pro:latest + dudosart/btre-pro:${{ github.sha }} + labels: ${{ steps.meta.outputs.labels }}