name: build and deploy kleinTodo on: push: branches: [ "main" ] tags: [ "v*" ] pull_request: branches: [ "main" ] release: types: [ "published" ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v4 with: go-version: '1.25.x' - name: Build binaries run: | chmod +x build.sh ./build.sh - name: Run tests run: go test -v ./tests/... - name: Build the Docker image run: docker build -t gitea.kleinsense.nl/dariusklein/klein_todo:latest -f server/Dockerfile . - name: Docker login run: docker login gitea.kleinsense.nl -p ${{secrets.docker_password}} -u ${{secrets.docker_username}} - name: Docker push run: docker push gitea.kleinsense.nl/dariusklein/klein_todo:latest - name: Create Release and Upload Binaries if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'release' uses: https://gitea.com/actions/gitea-release-action@v1 with: files: |- bin/server bin/todo