chore(deps): update eslint monorepo to v9.12.0 #1934
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 }} | |
- 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 }} | |
- 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-amd64: | |
name: Build (linux-amd64) | |
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: Install apt dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: ${{ env.LINUX_DEPENDENCIES }} | |
- 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_amd64.tar.gz -C dist . | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_linux_amd64 | |
path: gones_linux_amd64.tar.gz | |
build-linux-arm64: | |
name: Build (linux-arm64) | |
runs-on: ubuntu-24.04 | |
if: startsWith(github.ref, 'refs/tags/') || github.ref_name == 'main' | |
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: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build container | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: hack/builder.Dockerfile | |
tags: builder | |
load: true | |
platforms: linux/arm64/v8 | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Generate | |
run: go generate -x | |
- name: Build | |
run: | | |
docker run --rm -i --platform=linux/arm64/v8 \ | |
-v "$(go env GOCACHE):/root/.cache/go-build" \ | |
-v "$(go env GOMODCACHE):/go/pkg/mod" \ | |
-v "$PWD:/app" \ | |
builder \ | |
go build -ldflags='-w -s' -trimpath -tags "${{ env.BUILD_TAGS }}" -o dist/gones | |
- name: Compress | |
run: tar -cvf gones_linux_arm64.tar.gz -C dist . | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: gones_linux_arm64 | |
path: gones_linux_arm64.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: Install apt dependencies | |
uses: awalsh128/cache-apt-pkgs-action@v1 | |
with: | |
packages: binaryen | |
- 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: Optimize | |
working-directory: web/src/assets | |
run: | | |
temp="$(mktemp)" | |
wasm-opt -Oz --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-amd64, build-linux-arm64] | |
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 }}> |