mirror of
https://github.com/irongut/CodeCoverageSummary.git
synced 2026-05-14 22:20:13 +02:00
88 lines
2.4 KiB
YAML
88 lines
2.4 KiB
YAML
name: Build + Deploy to GHCR
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
env:
|
|
REGISTRY: ghcr.io
|
|
IMAGE_NAME: ${{ github.repository }}
|
|
|
|
jobs:
|
|
build:
|
|
name: Test Build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Setup .Net
|
|
uses: actions/setup-dotnet@v1
|
|
with:
|
|
dotnet-version: 5.0.x
|
|
|
|
- name: Restore Dependencies
|
|
run: dotnet restore src/CodeCoverageSummary.sln
|
|
|
|
- name: Build CodeCoverageSummary
|
|
run: dotnet build src/CodeCoverageSummary.sln --configuration Release --no-restore
|
|
|
|
- name: Test with sample file
|
|
run: dotnet src/CodeCoverageSummary/bin/Release/net5.0/CodeCoverageSummary.dll src/coverage.cobertura.xml --badge true
|
|
|
|
- name: Get Previous Tag
|
|
id: get_previous_tag
|
|
run: |
|
|
PREV_TAG=$(git describe --abbrev=0 --tags "${{ github.ref }}^")
|
|
echo "::set-output name=baseRef::${PREV_TAG}"
|
|
|
|
- name: Generate Changelog
|
|
id: generate_changelog
|
|
uses: nblagoev/pull-release-notes-action@v1.0.2
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
base-ref: ${{ steps.get_previous_tag.outputs.baseRef }}
|
|
head-ref: ${{ github.ref }}
|
|
|
|
- name: Add Changelog to Release
|
|
uses: irongut/EditRelease@v1.0.0
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
id: ${{ github.event.release.id }}
|
|
body: ${{ steps.generate_changelog.outputs.result }}
|
|
|
|
deploy:
|
|
name: Deploy to GHCR
|
|
needs: [build]
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@v1
|
|
with:
|
|
registry: ${{ env.REGISTRY }}
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Extract Docker metadata
|
|
id: meta
|
|
uses: docker/metadata-action@v3
|
|
with:
|
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
|
|
- name: Build + Push Docker image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|