Pipeline changes
This commit is contained in:
@@ -5,45 +5,80 @@ on:
|
||||
branches:
|
||||
- development
|
||||
|
||||
env:
|
||||
DOTNET_VERSION: '8.0.x'
|
||||
DOCKER_IMAGE_NAME: 'watcher-server'
|
||||
REGISTRY_URL: 'git.triggermeelmo.com/watcher'
|
||||
DOCKER_PLATFORMS: 'linux/amd64,linux/arm64'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
build-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup .NET 8 SDK
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: '8.0.x'
|
||||
- name: Setup .NET SDK
|
||||
uses: actions/setup-dotnet@v3
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNET_VERSION }}
|
||||
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Cache NuGet packages
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: ~/.nuget/packages
|
||||
key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj') }}
|
||||
restore-keys: |
|
||||
nuget-${{ runner.os }}-
|
||||
|
||||
- name: Build
|
||||
run: dotnet build --configuration Release --no-restore
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
|
||||
- name: Test (optional)
|
||||
run: dotnet test --no-build --verbosity normal
|
||||
- name: Build
|
||||
run: dotnet build --configuration Release --no-restore
|
||||
|
||||
- name: Publish
|
||||
run: dotnet publish -c Release -o out
|
||||
- name: Test
|
||||
run: dotnet test --no-build --verbosity normal
|
||||
continue-on-error: true
|
||||
|
||||
- name: Build Docker Image
|
||||
run: docker build -t watcher-server:development .
|
||||
- name: Publish
|
||||
run: dotnet publish -c Release -o out
|
||||
|
||||
- name: Login to Gitea Container Registry
|
||||
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login git.triggermeelmo.com -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
|
||||
docker-build-and-push:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build-and-test
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Push development-image
|
||||
run: docker push git.triggermeelmo.com/watcher/watcher-server:development
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Tag image Commit SHA
|
||||
run: docker tag watcher:development git.triggermeelmo.com/watcher/watcher-server:${{ github.sha }}
|
||||
- name: Cache Docker layers
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: /tmp/.buildx-cache
|
||||
key: docker-${{ github.sha }}
|
||||
restore-keys: |
|
||||
docker-
|
||||
|
||||
- name: Push sha-image
|
||||
run: docker push git.triggermeelmo.com/watcher/watcher-server:${{ github.sha }}
|
||||
- name: Login to Gitea Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: git.triggermeelmo.com
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and Push Multi-Arch Docker Image
|
||||
run: |
|
||||
docker buildx build \
|
||||
--platform ${{ env.DOCKER_PLATFORMS }} \
|
||||
--cache-from=type=local,src=/tmp/.buildx-cache \
|
||||
--cache-to=type=local,dest=/tmp/.buildx-cache-new,mode=max \
|
||||
-t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:development \
|
||||
-t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ github.sha }} \
|
||||
--push .
|
||||
|
||||
|
||||
# Move new cache
|
||||
rm -rf /tmp/.buildx-cache
|
||||
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
|
||||
|
Reference in New Issue
Block a user