continuity/.gitea/workflows/server.yaml
Timothy Schenk 85aaec2371
All checks were successful
Build, Package and Push Images / preprocess (push) Successful in 2s
Build, Package and Push Images / build (push) Successful in 32s
Build, Package and Push Images / sbom-scan (push) Successful in 1m2s
Build, Package and Push Images / container-sbom-scan (push) Successful in 40s
Build, Package and Push Images / container-build (push) Successful in 2m2s
Build, Package and Push Images / sonarqube (push) Successful in 2m5s
chore: .net8 support and extended support for pipeline jobs
fix: incorrect command

fix: incorrect command

fix: incorrect command

fix: export tools path

chore: test dir

fix: test build script

fix: missing semicolon

fix: missing semicolon

fix: missing buildscript

fix: missing buildscript

chore: update build to .net7

ci: set root dir

ci: set root dir

revert: .net 8 support for benchmarks

ci: disable docker for ci

ci: disable docker for ci

ci: disable docker for ci

ci: trigger

ci: i stg

ci: let's hope its the correct one

ci:  i stg

ci: further sonarscanner setup

ci: add tools

ci: rearrange

ci: verbose output

ci: hardcoded project key

ci: test env

ci: test more env

ci: env test again

ci: test env

ci: shit

ci: final setup

ci: final setup

ci: final setup

ci: adjust buildscript

ci: nuke

ci: install java

ci: install java

refactor: loggermessages to own namespace

chore: switch to dotnet foundation editorconfig preset

ci: switch to basic gitea ci

ci: steps

ci: add missing runs-on

ci: remove unnecessary actions

ci: test attempt?

ci: add missing name for step

ci: fix missing project name reference

ci: lets try again

ci: again

ci:  again..

ci: idk at this point

ci: append path prematurely

ci: add path to bash

cli: I really don't know

ci: again....

ci: idk

ci: again....

ci: another one

ci: fix incorrect path add-path

ci: add dependency track support

ci: fix upload

ci: forgot to adjust data for action

ci: incorrect path?

ci: add version tag

ci: idk

ci: fix incorrect path for bom

ci: fix version tag

ci: disable github license resolution for now

ci: does this work

ci: another one bites the dust

chore: .net 8 and extended pipeline support

ci: again

chore: dockerignore added

chore(deps): update dependency benchmarkdotnet to v0.13.10

Signed-off-by: noreply@rainote.dev

ci: dependency track can run on any branch

ci: first attempt docker image

ci: again

ci: some fixes

ci: idk

ci: does this help

ci: idk

ci: another one

ci:  forgot

ci: downgrade qemu setup

ci: downgrade..

ci: v1 includes docker

ci: rearrange

ci: idk what to do with this

ci: let's try cat

ci: alt

ci: depressing

ci: yikes

ci: ah come on

ci: let's try new version again

ci: again

ci: another one

ci: another one

ci: confusion

ci: try single

ci: aaaa

ci: one more time

ci: again

main (#69)

Reviewed-on: #69
Co-authored-by: Timothy Schenk <admin@rainote.dev>
Co-committed-by: Timothy Schenk <admin@rainote.dev>

chore: ci jobs expanded & .net 8 support

ci: branch name sanitization for docker

ci: another attempt

ci: forgot actor

chore: remove nuke remnants

chore(deps): update dependency dotnet-sdk to v7.0.403

Signed-off-by: noreply@rainote.dev

refactor: shared data into library

refactor: rewrite for packethandler/id map

chore: logging

chore: Sonar Warnings

chore: upgrade to .net8 image

chore: fetch all required information for characters

chore: upgrade to .net 8

ci: install .net 7.0 alongside 8.0 for sbom

fix: incorrect job

ci: let's try arm64 again

ci: adjust project for .net 8 support

chore: adjustments to composefile

chore: analyzer setup

chore: analyzer and project settings updated

chore: ci jobs expanded & .net 8 support
2023-11-08 10:13:04 +01:00

171 lines
6 KiB
YAML

name: Build, Package and Push Images
run-name: ${{ gitea.actor }} is building the Server application
on: [ push ]
jobs:
preprocess:
runs-on: ubuntu-latest
outputs:
sanitized_branch_name: ${{ steps.sanitize.outputs.sanitized_branch_name }}
steps:
- name: Sanitize branch name
id: sanitize
run: echo "::set-output name=sanitized_branch_name::$(echo ${{ github.ref_name }} | sed 's/\//-/g')"
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.0
- name: Install dependencies
run: dotnet restore
- name: Build
run: |
dotnet build Server -c Release
# dotnet test Server.Tests -c Release
sonarqube:
needs: build
runs-on: ubuntu-latest
if: github.ref_name == 'master'
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.0
- name: Install dependencies
run: |
dotnet restore
echo "::add-path::$HOME/.dotnet/tools"
- name: Setup Sonarqube Dependencies
run: |
apt-get update
apt-get install --yes openjdk-11-jre
dotnet tool install --global dotnet-sonarscanner
dotnet tool install --global dotnet-coverage
- name: Sonarqube Begin
run: |
dotnet sonarscanner begin /key:"${{ secrets.SONAR_PROJECT_KEY }}" /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="${{ secrets.SONAR_HOST_URL }}"
- name: Sonarqube Scan
run: |
dotnet build Server -c Release
# dotnet test --collect "Code Coverage" --logger trx --results-directory "TestsResults"
# dotnet-coverage collect 'dotnet test' -f xml -o 'coverage.xml'
- name: Sonarqube End
run: |
dotnet sonarscanner end /d:sonar.login="${{ secrets.SONAR_TOKEN }}"
sbom-scan:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: |
7.0
8.0
- name: Install dependencies
run: |
dotnet restore
echo "::add-path::$HOME/.dotnet/tools"
- name: Setup Dependency Track Dependencies
run: |
dotnet tool install --global CycloneDX
- name: Generate SBOM
run: |
dotnet CycloneDX Server/Server.csproj -o . -dgl
- name: Upload SBOM
uses: https://github.com/DependencyTrack/gh-upload-sbom@v2.0.1
with:
apiKey: ${{ secrets.DEPENDENCY_TRACK_API_KEY }}
serverHostname: ${{ secrets.DEPENDENCY_TRACK_URL }}
projectName: ${{ secrets.DEPENDENCY_TRACK_PROJECT_NAME }}
autoCreate: true
# set projectversion to be the branch name
projectVersion: "${{ github.ref_name }}"
bomFilename: "${{ github.workspace }}/bom.xml"
container-build:
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
needs: [ build, preprocess ]
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.0
# Add support for more platforms with QEMU (optional)
# https://github.com/docker/setup-qemu-action
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ${{ github.server_url }}
username: ${{ github.actor }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: Server/Dockerfile
push: true
tags: forge.rainote.dev/${{ github.repository }}:${{ needs.preprocess.outputs.sanitized_branch_name }}
platforms: linux/amd64,linux/arm64
- name: Build and push to latest
if: github.ref_name == 'master'
uses: docker/build-push-action@v5
with:
context: .
file: Server/Dockerfile
push: true
tags: forge.rainote.dev/${{ github.repository }}:latest
platforms: linux/amd64, linux/arm64
container-sbom-scan:
needs: [ container-build, preprocess ]
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
steps:
- uses: actions/checkout@v3
- name: Setup dotnet
uses: https://github.com/actions/setup-dotnet@v3
with:
dotnet-version: 8.0
- name: Install dependencies
run: |
dotnet restore
echo "::add-path::$HOME/.dotnet/tools"
- name: Setup Dependency Track Dependencies
run: |
mkdir ~/.docker
curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sh -s --
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ${{ github.server_url }}
username: ${{ github.actor }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Generate SBOM
run: |
docker sbom forge.rainote.dev/${{ github.repository }}:${{ needs.preprocess.outputs.sanitized_branch_name }} --format cyclonedx-json --output bom.json
- name: Upload SBOM
uses: https://github.com/DependencyTrack/gh-upload-sbom@v2.0.1
with:
apiKey: ${{ secrets.DEPENDENCY_TRACK_API_KEY }}
serverHostname: ${{ secrets.DEPENDENCY_TRACK_URL }}
projectName: "${{ secrets.DEPENDENCY_TRACK_PROJECT_NAME }}-container"
autoCreate: true
# set projectversion to be the branch name
projectVersion: "${{ github.ref_name }}"
bomFilename: "${{ github.workspace }}/bom.json"