name: Run Django tests for TubeSync env: IMAGE_NAME: tubesync on: push: branches: - main pull_request: branches: - main jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7, 3.8, 3.9] steps: - uses: actions/checkout@v2 - name: Install Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install pipenv pipenv install --system --skip-lock - name: Set up Django environment run: cp tubesync/tubesync/local_settings.py.example tubesync/tubesync/local_settings.py - name: Run Django tests run: cd tubesync && python3 manage.py test --verbosity=2 containerise: runs-on: ubuntu-latest steps: - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Log into GitHub Container Registry run: echo "${{ secrets.REGISTRY_ACCESS_TOKEN }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin - name: Lowercase github username for ghcr id: string uses: ASzc/change-string-case-action@v1 with: string: ${{ github.actor }} - name: Build and push uses: docker/build-push-action@v2 with: platforms: linux/amd64,linux/arm64 push: true tags: ghcr.io/${{ steps.string.outputs.lowercase }}/${{ env.IMAGE_NAME }}:latest cache-from: type=registry,ref=ghcr.io/${{ steps.string.outputs.lowercase }}/${{ env.IMAGE_NAME }}:latest cache-to: type=inline build-args: | IMAGE_NAME=${{ env.IMAGE_NAME }}