name: CI on: push: branches: [main, master] tags: ["v*"] pull_request: branches: [main, master] jobs: validate: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version-file: go.mod - name: Build run: go build ./... - name: Vet run: go vet ./... - name: Test run: go test ./... docker: runs-on: ubuntu-latest timeout-minutes: 15 needs: validate if: github.event_name == 'push' steps: - uses: actions/checkout@v4 - name: Compute tags id: meta run: | if [[ "$GITEA_REF" == refs/tags/v* ]]; then echo "tag=${GITEA_REF#refs/tags/}" >> "$GITEA_OUTPUT" else echo "tag=latest" >> "$GITEA_OUTPUT" fi echo "sha=sha-$(echo "$GITEA_SHA" | cut -c1-7)" >> "$GITEA_OUTPUT" - name: Login to registry run: echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.timemachine.center -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin - name: Build and push run: | IMG=git.timemachine.center/timemachine/${{ gitea.event.repository.name }} docker build -t "$IMG:${{ steps.meta.outputs.tag }}" -t "$IMG:${{ steps.meta.outputs.sha }}" . docker push "$IMG:${{ steps.meta.outputs.tag }}" docker push "$IMG:${{ steps.meta.outputs.sha }}"