Dotnet format #70
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: HQ CD | |
on: | |
push: | |
tags: | |
- v* | |
jobs: | |
build-dotnet: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: src/dotnet/ | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup .NET | |
uses: actions/setup-dotnet@v4 | |
with: | |
dotnet-version: 8.0.x | |
- name: Write release version | |
run: | | |
VERSION=${GITHUB_REF_NAME#v} | |
echo Version: $VERSION | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
- name: Restore dependencies | |
run: dotnet restore | |
- name: Format | |
run: dotnet format ./HQ.sln --verify-no-changes --verbosity diagnostic | |
- name: Build | |
run: dotnet build --no-restore --configuration Release /p:Version=${VERSION} -warnaserror | |
- name: Test | |
run: dotnet test --no-build --configuration Release --verbosity normal | |
- name: Publish HQ Server | |
run: dotnet publish --no-build --configuration Release --verbosity normal HQ.Server/ --output dist/hq-server/ | |
- name: Upload HQ Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dotnet-hq-server | |
path: src/dotnet/dist/hq-server/** | |
if-no-files-found: error | |
build-angular-hq: | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: src/angular/hq/ | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js 20.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
cache: 'npm' | |
cache-dependency-path: src/angular/hq/package-lock.json | |
- name: Restore dependencies | |
run: npm ci | |
- name: Prettier | |
run: npm run prettier -- . --check | |
- name: Lint | |
run: npm run lint | |
- name: Build | |
run: npm run build | |
- name: Upload HQ Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: angular-hq | |
path: src/angular/hq/dist/hq/browser/** | |
if-no-files-found: error | |
push-server: | |
runs-on: ubuntu-latest | |
needs: | |
- build-dotnet | |
- build-angular-hq | |
defaults: | |
run: | |
working-directory: src/dotnet/ | |
permissions: | |
contents: 'read' | |
packages: 'write' | |
env: | |
REGISTRY: ghcr.io | |
REPO_NAME: ${{ github.repository }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: dotnet-hq-server | |
path: src/dotnet/dist/hq-server/ | |
- name: Set output | |
id: vars | |
run: | | |
echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT | |
echo "version=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GHCR | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push HQ to ghcr | |
uses: docker/build-push-action@v5 | |
with: | |
file: src/dotnet/HQ.Server/Dockerfile | |
context: src/dotnet/dist/hq-server/ | |
push: true | |
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME }}-server:${{ steps.vars.outputs.tag }} | |
build-args: | | |
VERSION=${{ steps.vars.outputs.version }} | |
push-web: | |
runs-on: ubuntu-latest | |
needs: | |
- build-dotnet | |
- build-angular-hq | |
defaults: | |
run: | |
working-directory: src/angular/hq/ | |
permissions: | |
contents: 'read' | |
packages: 'write' | |
env: | |
REGISTRY: ghcr.io | |
REPO_NAME: ${{ github.repository }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: angular-hq | |
path: src/angular/hq/dist/hq/browser/ | |
- name: Set output | |
id: vars | |
run: | | |
echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT | |
echo "version=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GHCR | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push HQ to ghcr | |
uses: docker/build-push-action@v5 | |
with: | |
file: src/angular/hq/Dockerfile | |
context: src/angular/hq/dist/hq/browser/ | |
push: true | |
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME }}-web:${{ steps.vars.outputs.tag }} | |
build-args: | | |
VERSION=${{ steps.vars.outputs.version }} | |
build-contexts: | | |
src=src/angular/hq/ | |
push-auth: | |
runs-on: ubuntu-latest | |
needs: | |
- build-dotnet | |
- build-angular-hq | |
defaults: | |
run: | |
working-directory: src/auth/ | |
permissions: | |
contents: 'read' | |
packages: 'write' | |
env: | |
REGISTRY: ghcr.io | |
REPO_NAME: ${{ github.repository }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set output | |
id: vars | |
run: | | |
echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT | |
echo "version=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GHCR | |
uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push Auth to ghcr | |
uses: docker/build-push-action@v5 | |
with: | |
file: src/auth/Dockerfile | |
context: src/auth/ | |
push: true | |
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME }}-auth:${{ steps.vars.outputs.tag }} | |
build-args: | | |
VERSION=${{ steps.vars.outputs.version }} |