chore(deps): update module github.com/spf13/cobra to v1.9.1 (#368) #2229
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: {} | |
schedule: | |
- cron: '41 8 5 * *' | |
env: | |
LINUX_DEPENDENCIES: > | |
libasound2-dev | |
libc6-dev | |
libgl1-mesa-dev | |
libglu1-mesa-dev | |
libxcursor-dev | |
libxi-dev | |
libxinerama-dev | |
libxrandr-dev | |
libxxf86vm-dev | |
BUILD_TAGS: gzip,ebitenginesinglethread | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache: false | |
- name: Install apt dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: ${{ env.LINUX_DEPENDENCIES }} | |
version: amd64 | |
- name: Lint | |
uses: golangci/golangci-lint-action@v6 | |
test: | |
name: Test | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Install apt dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: ${{ env.LINUX_DEPENDENCIES }} | |
version: amd64 | |
- name: Test | |
run: xvfb-run go test ./... -coverprofile=coverage.txt -covermode=atomic | |
build-windows: | |
name: Build (windows) | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Generate | |
run: go generate -x | |
- name: Build | |
env: | |
VERSION: ${{ github.ref_name }} | |
run: ./hack/build-windows.sh | |
- name: Compress | |
working-directory: dist | |
run: | | |
zip -r ../gones_windows_amd64.zip GoNES-amd64.exe | |
zip -r ../gones_windows_arm64.zip GoNES-arm64.exe | |
- name: Upload Artifact (amd64) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_windows_amd64 | |
path: gones_windows_amd64.zip | |
- name: Upload Artifact (arm64) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_windows_arm64 | |
path: gones_windows_arm64.zip | |
build-darwin: | |
name: Build (darwin) | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Generate | |
run: go generate -x | |
- name: Build | |
env: | |
VERSION: ${{ github.ref_name }} | |
run: ./hack/build-darwin.sh | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_darwin | |
path: dist/gones_darwin.tar.gz | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_cask | |
path: dist/gones.rb | |
build-linux: | |
name: Build (linux-${{ matrix.platform }}) | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
matrix: | |
include: | |
- platform: amd64 | |
runs-on: ubuntu-24.04 | |
- platform: arm64 | |
runs-on: ubuntu-24.04-arm | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Install apt dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: ${{ env.LINUX_DEPENDENCIES }} | |
version: ${{ matrix.platform }} | |
- name: Generate | |
run: go generate -x | |
- name: Build | |
env: | |
CGO_ENABLED: "1" | |
run: go build -ldflags='-w -s' -trimpath -tags "${{ env.BUILD_TAGS }}" -o dist/gones | |
- name: Compress | |
run: tar -cvf gones_linux_${{ matrix.platform }}.tar.gz -C dist . | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_linux_${{ matrix.platform }} | |
path: gones_linux_${{ matrix.platform }}.tar.gz | |
build-web: | |
name: Build Web | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
id: setup-go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- name: Generate | |
run: go generate -x | |
- name: Build Go | |
env: | |
GOOS: js | |
GOARCH: wasm | |
run: go build -ldflags='-w -s' -trimpath -tags "${{ env.BUILD_TAGS }}" -o web/src/assets/gones.wasm | |
- name: Install binaryen | |
env: | |
GH_REPO: webassembly/binaryen | |
BINARYEN_VERSION: version_122 | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
temp="$(mktemp --directory)" | |
gh release download "$BINARYEN_VERSION" --pattern="*-$(uname -m)-linux.tar.gz" --output=- \ | |
| tar xzvf - --strip-components=1 --directory="$temp" | |
echo "$temp/bin" >> $GITHUB_PATH | |
- name: Optimize | |
if: startsWith(github.ref, 'refs/tags/') || github.ref_name == 'main' | |
working-directory: web/src/assets | |
run: | | |
temp="$(mktemp)" | |
wasm-opt --converge --flatten --rereloop -O3 --gufa -O3 --enable-bulk-memory -o "$temp" gones.wasm | |
mv "$temp" gones.wasm | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: web/.nvmrc | |
cache: npm | |
cache-dependency-path: web/package-lock.json | |
- name: Install Node dependencies | |
run: npm --prefix web install --prefer-offline --no-audit | |
- name: Build Node | |
env: | |
VITE_PLAUSIBLE_HOST: https://analytics.gabe565.com | |
run: npm --prefix web run build | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: web/dist | |
deploy-web: | |
name: Deploy Web | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: [lint, test, build-web] | |
runs-on: ubuntu-24.04 | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 | |
release: | |
name: Release | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: [lint, test, build-windows, build-darwin, build-linux] | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: gones_* | |
path: dist | |
merge-multiple: true | |
- name: Generate Changelog | |
id: changelog | |
uses: gabe565/changelog-generator@v1 | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
body: ${{ steps.changelog.outputs.changelog }} | |
files: | | |
dist/gones_* | |
update-homebrew-tap: | |
name: Update Homebrew Tap | |
runs-on: ubuntu-24.04 | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: [release] | |
env: | |
commit_name: gabe565-goreleaser[bot] | |
commit_email: 159411820+gabe565-goreleaser[bot]@users.noreply.github.com | |
steps: | |
- name: Generate Token | |
id: app-token | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: ${{ secrets.BOT_APP_ID }} | |
private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }} | |
repositories: homebrew-tap | |
- uses: actions/checkout@v4 | |
with: | |
repository: gabe565/homebrew-tap | |
token: ${{ steps.app-token.outputs.token }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: gones_cask | |
path: Casks | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Brew formula update for gones version ${{ github.ref_name }} | |
commit_user_name: ${{ env.commit_name }} | |
commit_user_email: ${{ env.commit_email }} | |
commit_author: ${{ env.commit_name }} <${{ env.commit_email }}> |