diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 5d530ab..bf599b5 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -1,49 +1,62 @@ -name: Development Build +name: Release Build and Release on: push: branches: - main +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: Restore dependencies + run: dotnet restore - - name: Build - run: dotnet build --configuration Release --no-restore + - name: Build + run: dotnet build --configuration Release --no-restore - - name: Test (optional) - run: dotnet test --no-build --verbosity normal + - name: Test + run: dotnet test --no-build --verbosity normal + continue-on-error: true - - name: Publish - run: dotnet publish -c Release -o out + - name: Publish + run: dotnet publish -c Release -o out - - name: Build Docker Image - run: docker build -t watcher:v0.1.0 . + docker-build-and-push: + runs-on: ubuntu-latest + needs: build-and-test + steps: + - name: Checkout code + uses: actions/checkout@v3 - - name: Login to Gitea Container Registry - run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login git.triggermeelmo.com -u ${{ secrets.DOCKER_USERNAME }} --password-stdin + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v2 - - name: Tag image - run: docker tag watcher:v0.1.0 git.triggermeelmo.com/daniel-hbn/watcher/watcher:v0.1.0 + - 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: Push image - run: docker push git.triggermeelmo.com/daniel-hbn/watcher/watcher:v0.1.0 - - - name: Tag image - run: docker tag watcher:v0.1.0 git.triggermeelmo.com/daniel-hbn/watcher/watcher:latest - - - name: Push image - run: docker push git.triggermeelmo.com/daniel-hbn/watcher/watcher:latest \ No newline at end of file + - name: Build and Push Multi-Arch Docker Image + run: | + docker buildx build \ + --platform ${{ env.DOCKER_PLATFORMS }} \ + -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:v0.1.0 \ + -t ${{ env.REGISTRY_URL }}/${{ env.DOCKER_IMAGE_NAME }}:${{ github.sha }} \ + --push .