diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml deleted file mode 100644 index 64a1fd9..0000000 --- a/.gitea/workflows/build.yaml +++ /dev/null @@ -1,56 +0,0 @@ -name: build and test -on: - push: - branches: - - "master" - - "develop" - -jobs: - build: - name: artifact builds on linux and windows - env: - RUNNER_TOOL_CACHE: /toolcache - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: setup go - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: setup-dependencies - run: | - apt-get update - apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev - - - name: get fyne - run: | - go get fyne.io/fyne/v2@latest - go install fyne.io/fyne/v2/cmd/fyne@latest - - - name: build linux - run: | - BUILD=${{github.run_number}} - GOOS=windows - GOARCH=amd64 - GOFLAGS="-ldflags=-s -ldflags=-w" - CGO_ENABLED=1 - CC=gcc - fyne package --appBuild=${BUILD} --exe bin/swiped-mod-switcher-$VERSION-linux-amd64 main.go - - - name: build windows - run: | - BUILD=${{github.run_number}} - GOOS=windows - GOARCH=amd64 - GOFLAGS="-ldflags=-H=windowsgui -ldflags=-s -ldflags=-w" - CGO_ENABLED=1 - CC=x86_64-w64-mingw32-gcc - fyne package --appBuild=${BUILD} --exe bin/swiped-mod-switcher-$VERSION-windows-amd64.exe main.go - - - 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/ci.yaml new file mode 100644 index 0000000..4c54917 --- /dev/null +++ b/.gitea/workflows/ci.yaml @@ -0,0 +1,124 @@ +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 + 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: Lint + uses: golangci/golangci-lint-action@v3 + with: + version: latest + args: --verbose + + 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/pr-validation.yaml b/.gitea/workflows/pr-validation.yaml deleted file mode 100644 index 983834d..0000000 --- a/.gitea/workflows/pr-validation.yaml +++ /dev/null @@ -1,52 +0,0 @@ -name: pull request validation -on: - pull_request: - branches: - - master - - develop - -jobs: - build: - name: build and run tests - env: - RUNNER_TOOL_CACHE: /toolcache - runs-on: ubuntu-latest - steps: - - name: checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: setup go - uses: actions/setup-go@v5 - with: - go-version-file: 'go.mod' - - name: setup dependencies - run: | - apt-get update - apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev - - - name: get fyne - run: | - go get fyne.io/fyne/v2@latest - go install fyne.io/fyne/v2/cmd/fyne@latest - - - name: build - run: | - GOOS=linux - GOARCH=amd64 - GOFLAGS="-ldflags=-s -ldflags=-w" - CGO_ENABLED=1 - CC=gcc - fyne package --exe bin/swiped-mod-switcher-${VERSION}.${BUILD}-linux-amd64 main.go - - name: run tests - run: go test -v ./... - - name: Check Vet - run: go vet ./... - - name: check formatting - run: |- - gofmt -s -l . - if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then exit 1; fi - - name: check lint - uses: golangci/golangci-lint-action@v3 - with: - version: latest \ No newline at end of file diff --git a/.gitea/workflows/release-tag.yaml b/.gitea/workflows/release-tag.yaml index 4927422..9af8d8b 100644 --- a/.gitea/workflows/release-tag.yaml +++ b/.gitea/workflows/release-tag.yaml @@ -1,4 +1,4 @@ -name: release-tag +name: Release versioned tag on: push: tags: @@ -6,51 +6,50 @@ on: jobs: release: + name: Build versioned release runs-on: ubuntu-latest steps: - - name: checkout + - name: Checkout uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: setup go + + - name: Setup go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' - - name: setup-dependencies + + - name: Setup OS dependencies run: | apt-get update apt-get install -y gcc-mingw-w64 gcc libgl1-mesa-dev xorg-dev - - name: get fyne + - name: Install fyne command run: | - go get fyne.io/fyne/v2@latest go install fyne.io/fyne/v2/cmd/fyne@latest - - name: build linux + - name: Install go dependencies + run: go mod tidy + + - name: Build for linux run: | VERSION=${{github.ref_name}} BUILD=${{github.run_number}} - GOOS=linux - GOARCH=amd64 GOFLAGS="-ldflags=-s -ldflags=-w" CGO_ENABLED=1 CC=gcc - fyne package --appVersion=${VERSION#v} --appBuild=${BUILD} --exe bin/sw1ped-mod-switcher-${VERSION}.${BUILD}-linux-amd64 main.go + fyne package --os linux --release --appVersion=${VERSION#v} --appBuild=${BUILD} --exe bin/sw1ped-mod-switcher-${VERSION}.${BUILD}-linux-amd64 main.go - - name: build windows + - name: Build for windows run: | VERSION=${{github.ref_name}} BUILD=${{github.run_number}} - GOOS=windows - GOARCH=amd64 GOFLAGS="-ldflags=-H=windowsgui -ldflags=-s -ldflags=-w" CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc - fyne package --appVersion=${VERSION#v} --appBuild=${BUILD} --exe bin/sw1ped-mod-switcher-${VERSION}.${BUILD}-windows-amd64.exe main.go + fyne package --os windows --release --appVersion=${VERSION#v} --appBuild=${BUILD} --exe bin/sw1ped-mod-switcher-${VERSION}.${BUILD}-windows-amd64.exe main.go - - name: add release binaries + - name: Release binaries uses: https://gitea.com/actions/release-action@main with: files: |- - bin/** + bin/** api_key: '${{secrets.RELEASE_TOKEN}}'