diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index debf97c..e6b83f6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -39,30 +39,17 @@ jobs: name: Test runs-on: ubuntu-latest timeout-minutes: 10 - strategy: - matrix: - go_version: - - ^1.25 steps: - name: Checkout uses: actions/checkout@v6 with: submodules: recursive - - name: Setup Go - uses: actions/setup-go@v6 - with: - go-version: ${{ matrix.go_version }} - - - name: Cache dependencies - uses: actions/cache@v5 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: ${{ runner.os }}-go- + - uses: jdx/mise-action@v3 + name: Install mise - name: Run tests - run: go test -coverprofile=./coverage.txt -covermode=atomic -v ./... + run: mise tasks run covtest - name: Collect coverage uses: codecov/codecov-action@v5 @@ -79,29 +66,11 @@ jobs: with: submodules: recursive - - name: Setup Go - uses: actions/setup-go@v6 - with: - go-version: ^1.25 - - - name: Cache fuzz results - uses: actions/cache@v5 - with: - path: ~/.cache/go-build/fuzz - key: ${{ runner.os }}-go-${{ hashFiles('**/*_fuzz_test.go', '**/*_fuzz_internal_test.go') }} - restore-keys: ${{ runner.os }}-go- - - - name: Cache dependencies - uses: actions/cache@v5 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: ${{ runner.os }}-go- - - uses: jdx/mise-action@v3 name: Install mise - - run: mise tasks run 'test:fuzz:*' + - name: Run fuzzing + run: mise tasks run 'test:fuzz:*' lint: @@ -114,13 +83,11 @@ jobs: with: submodules: recursive - - name: Setup Go - uses: actions/setup-go@v6 - with: - go-version: ^1.25 + - uses: jdx/mise-action@v3 + name: Install mise - name: Run linter - uses: golangci/golangci-lint-action@v9.2.0 + run: mise tasks run lint docker: name: Docker @@ -133,17 +100,17 @@ jobs: submodules: recursive - name: Get Docker meta - id: docker_meta - uses: crazy-max/ghaction-docker-meta@v1 + id: meta + uses: docker/metadata-action@v5 with: images: nineseconds/mtg,ghcr.io/9seconds/mtg tag-semver: "{{version}},{{major}},{{major}}.{{minor}}" - name: Setup QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v3 - name: Setup BuildX - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3 - name: Setup cache uses: actions/cache@v5 @@ -152,30 +119,30 @@ jobs: key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - # - # - name: Login to DockerHub - # if: github.event_name != 'pull_request' - # uses: docker/login-action@v1 - # with: - # username: ${{ secrets.DOCKERHUB_USERNAME }} - # password: ${{ secrets.DOCKERHUB_PASSWORD }} - # - # - name: Login to GHCR.io - # if: github.event_name != 'pull_request' - # uses: docker/login-action@v1 - # with: - # registry: ghcr.io - # username: ${{ github.repository_owner }} - # password: ${{ secrets.GH_PAT }} - # - # - name: Build and push - # uses: docker/build-push-action@v2 - # with: - # pull: true - # context: . - # platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6 - # push: ${{ github.event_name != 'pull_request' }} - # tags: ${{ steps.docker_meta.outputs.tags }} - # labels: ${{ steps.docker_meta.outputs.labels }} - # cache-from: type=local,src=/tmp/buildx-cache - # cache-to: type=local,dest=/tmp/buildx-cache + + - name: Login to GHCR.io + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GH_PAT }} + + - name: Login to DockerHub + if: github.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v2 + with: + pull: true + context: . + platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6 + push: false + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }} + cache-from: type=local,src=/tmp/buildx-cache + cache-to: type=local,dest=/tmp/buildx-cache