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
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
171 lines
6 KiB
YAML
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"
|
|
|