tubesync/.github/workflows/ci.yaml

59 lines
1.8 KiB
YAML
Raw Normal View History

2020-12-13 05:42:28 +00:00
name: Run Django tests for TubeSync
2020-12-13 06:39:04 +00:00
2020-12-13 07:10:32 +00:00
env:
IMAGE_NAME: tubesync
2020-12-13 05:42:28 +00:00
on:
push:
branches:
2020-12-13 05:49:10 +00:00
- main
2020-12-13 05:42:28 +00:00
pull_request:
branches:
2020-12-13 05:49:10 +00:00
- main
2020-12-13 05:42:28 +00:00
jobs:
2020-12-13 07:02:34 +00:00
test:
2020-12-13 05:42:28 +00:00
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
- name: Set up Django environment
run: cp tubesync/tubesync/local_settings.py.example tubesync/tubesync/local_settings.py
2020-12-13 05:42:28 +00:00
- name: Run Django tests
2020-12-13 05:54:08 +00:00
run: cd tubesync && python3 manage.py test --verbosity=2
2020-12-13 07:04:14 +00:00
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 }}