Skip to content

Merge pull request #144 from sancsoft/project-search-filter #30

Merge pull request #144 from sancsoft/project-search-filter

Merge pull request #144 from sancsoft/project-search-filter #30

Workflow file for this run

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 }}