Files
WatchIt/.github/workflows/master_push.yml

64 lines
1.9 KiB
YAML

name: "Push to 'master' branch"
on:
push:
branches:
- "master"
jobs:
build:
name: Build and test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
publish:
name: Publish
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
app:
- WatchIt.WebAPI
- WatchIt.Website
steps:
- name: Checkout
uses: actions/checkout@v4
- name: App Settings Variable Substitution
uses: microsoft/variable-substitution@v1
if: ${{ matrix.app == 'WatchIt.WebAPI' }}
with:
files: ${{ github.workspace }}/${{ matrix.app }}/${{ matrix.app }}/appsettings.json
env:
ConnectionStrings.Default: ${{ secrets.CONNECTION_STRING }}
RootUser.Email: ${{ secrets.ROOT_EMAIL }}
RootUser.Password: ${{ secrets.ROOT_PASSWORD }}
Authentication.Key: ${{ secrets.KEY }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{github.actor}}
password: ${{secrets.GITHUB_TOKEN}}
- name: Convert name to lowercase
id: name
uses: ASzc/change-string-case-action@v1
with:
string: ${{ matrix.app }}
- name: Build image
run: docker build ${{ github.workspace }} -t ghcr.io/${{github.actor}}/${{ steps.name.outputs.lowercase }}:latest -f ${{ github.workspace }}/${{ matrix.app }}/${{ matrix.app }}/Dockerfile
- name: Publish image
run: docker push ghcr.io/${{github.actor}}/${{ steps.name.outputs.lowercase }}:latest