diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dea4998..af172b9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,8 +14,24 @@ permissions: contents: write jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.23' + + - name: Run tests with race detector + run: go test -race -v ./... + version: name: Calculate Version + needs: test runs-on: ubuntu-latest outputs: version: ${{ steps.version_formatted.outputs.version }} @@ -60,13 +76,19 @@ jobs: with: go-version: '1.23' + - name: Create and push tag + run: | + git config user.name "github-actions[bot]" + git config user.email "github-actions[bot]@users.noreply.github.com" + git tag -a ${{ needs.version.outputs.version_tag }} -m "Release ${{ needs.version.outputs.version_tag }}" + git push origin ${{ needs.version.outputs.version_tag }} + - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: distribution: goreleaser - version: latest + version: '~> v2' args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} HOMEBREW_TAP_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }} - GORELEASER_CURRENT_TAG: ${{ needs.version.outputs.version_tag }} diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml new file mode 100644 index 0000000..ffc93e8 --- /dev/null +++ b/.github/workflows/static.yml @@ -0,0 +1,48 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] +<<<<<<< HEAD +======= + paths: + - 'docs/**' +>>>>>>> b4f4c38 (Add github page.) + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + # Upload entire repository + path: 'docs/' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 897a7a6..3dc9890 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -58,11 +58,12 @@ brews: owner: lukaszraczylo name: brew-taps token: "{{ .Env.HOMEBREW_TAP_TOKEN }}" - folder: Formula + directory: Formula homepage: https://lukaszraczylo.github.io/kportal description: "Modern Kubernetes port-forward manager with interactive TUI" license: MIT test: | system "#{bin}/kportal", "--version" - install: | - bin.install "kportal" + dependencies: + - name: kubernetes-cli + type: optional