diff --git a/.gitea/workflows/pull-request-ci.yaml b/.gitea/workflows/pull-request-ci.yaml new file mode 100644 index 0000000..08cacd7 --- /dev/null +++ b/.gitea/workflows/pull-request-ci.yaml @@ -0,0 +1,117 @@ +name: CI +on: + pull_request: + +jobs: + lint: + name: Lint + env: + RUNNER_TOOL_CACHE: /toolcache + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + check-latest: true + cache: true + + - name: Install go dependencies + run: go mod tidy + + - name: Lint + uses: golangci/golangci-lint-action@v3 + with: + version: latest + + test: + name: Test + env: + RUNNER_TOOL_CACHE: /toolcache + 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' + check-latest: true + cache: true + + - name: Setup OS dependencies + run: | + apt-get update + apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev + + - name: Get fyne command + run: | + go install fyne.io/fyne/v2/cmd/fyne@latest + + - name: Get go dependencies + run: | + go mod tidy + + - name: Test + run: go test -race -v -shuffle=on ./... + + build: + name: Build + env: + RUNNER_TOOL_CACHE: /toolcache + 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' + check-latest: true + cache: true + + - name: Setup OS dependencies + run: | + apt-get update + apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev + + - name: Get fyne command + run: | + go install fyne.io/fyne/v2/cmd/fyne@latest + + - name: Get go dependencies + run: | + go mod tidy + + - name: Build for linux + run: | + fyne package --appBuild=${BUILD} --exe bin/swiped-mod-switcher-${VERSION}.${BUILD}-${GOOS}-${GOARCH}${EXE} main.go + env: + BUILD: ${{github.run_number}} + GOOS: linux + GOARCH: amd64 + EXE: "" + CGO_ENABLED: 1 + CC: gcc + + - name: Build for windows + run: | + fyne package --appBuild=${BUILD} --exe bin/swiped-mod-switcher-${VERSION}.${BUILD}-${GOOS}-${GOARCH}${EXE} main.go + env: + BUILD: ${{github.run_number}} + GOOS: windows + GOARCH: amd64 + EXE: .exe + CGO_ENABLED: 1 + CC: x86_64-w64-mingw32-gcc + + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: swiped-mod-switcher-${{github.ref_name}} + path: bin/ \ No newline at end of file diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/push-ci.yaml similarity index 87% rename from .gitea/workflows/ci.yaml rename to .gitea/workflows/push-ci.yaml index 4c54917..7b05566 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/push-ci.yaml @@ -2,18 +2,10 @@ name: CI on: push: branches: [master, develop] - pull_request: jobs: lint: name: Lint - permissions: - # Required: allow read access to the content for analysis. - contents: read - # Optional: allow read access to pull request. Use with `only-new-issues` option. - pull-requests: read - # Optional: Allow write access to checks to allow the action to annotate code in the PR. - checks: write env: RUNNER_TOOL_CACHE: /toolcache runs-on: ubuntu-latest @@ -28,11 +20,13 @@ jobs: check-latest: true cache: true + - name: Install go dependencies + run: go mod tidy + - name: Lint uses: golangci/golangci-lint-action@v3 with: version: latest - args: --verbose test: name: Test diff --git a/.gitea/workflows/release-tag.yaml b/.gitea/workflows/tag-release.yaml similarity index 57% rename from .gitea/workflows/release-tag.yaml rename to .gitea/workflows/tag-release.yaml index 9af8d8b..d189fb0 100644 --- a/.gitea/workflows/release-tag.yaml +++ b/.gitea/workflows/tag-release.yaml @@ -5,6 +5,62 @@ on: - 'v*' jobs: + lint: + name: Lint + env: + RUNNER_TOOL_CACHE: /toolcache + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup go + uses: actions/setup-go@v5 + with: + go-version-file: 'go.mod' + check-latest: true + cache: true + + - name: Install go dependencies + run: go mod tidy + + - name: Lint + uses: golangci/golangci-lint-action@v3 + with: + version: latest + + test: + name: Test + env: + RUNNER_TOOL_CACHE: /toolcache + 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' + check-latest: true + cache: true + + - name: Setup OS dependencies + run: | + apt-get update + apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev + + - name: Get fyne command + run: | + go install fyne.io/fyne/v2/cmd/fyne@latest + + - name: Get go dependencies + run: | + go mod tidy + + - name: Test + run: go test -race -v -shuffle=on ./... + release: name: Build versioned release runs-on: ubuntu-latest