chore: setup CI (#1)

This commit is contained in:
Julian Tölle 2024-05-05 00:37:08 +02:00 committed by GitHub
parent ab668ce310
commit 2db1c01a62
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 181 additions and 0 deletions

12
.github/release-please-config.json vendored Normal file
View file

@ -0,0 +1,12 @@
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"include-component-in-tag": false,
"include-v-in-tag": true,
"packages": {
".": {
"release-type": "go",
"package-name": "hcloud-upload-image",
"extra-files": ["internal/version/version.go"]
}
}
}

1
.github/release-please-manifest.json vendored Normal file
View file

@ -0,0 +1 @@
{".":"0.0.1"}

67
.github/workflows/ci.yaml vendored Normal file
View file

@ -0,0 +1,67 @@
name: ci
on:
push:
branches: [main]
pull_request:
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run golangci-lint (CLI)
uses: golangci/golangci-lint-action@v5
with:
version: v1.57.2 # renovate: datasource=github-releases depName=golangci/golangci-lint
args: --timeout 5m
- name: Run golangci-lint (Lib)
uses: golangci/golangci-lint-action@v5
with:
version: v1.57.2 # renovate: datasource=github-releases depName=golangci/golangci-lint
args: --timeout 5m
working-directory: hcloudimages
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run tests
run: go test -v -race -coverpkg=./...,./hcloudimages/... ./... ./hcloudimages/...
go-mod-tidy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run go mod tidy
run: go mod tidy
- name: Check uncommitted changes
run: git diff --exit-code
- if: failure()
run: echo "::error::Check failed, please run 'go mod tidy' and commit the changes."

18
.github/workflows/release-please.yaml vendored Normal file
View file

@ -0,0 +1,18 @@
name: release-please
on:
push:
branches: [main]
jobs:
release-please:
# Do not run on forks.
if: github.repository == 'apricote/hcloud-upload-image'
runs-on: ubuntu-latest
steps:
- uses: google-github-actions/release-please-action@v4
with:
token: ${{ secrets.RELEASE_PLEASE_GH_TOKEN }}
config-file: .github/release-please-config.json
manifest-file: .github/release-please-manifest.json

26
.github/workflows/release.yaml vendored Normal file
View file

@ -0,0 +1,26 @@
name: release
on:
push:
tags:
- "v*.*.*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
version: latest
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}