name: Build Executables on: push: tags: - "*" # triggers only if push new tag version, like `0.8.4` or else jobs: tests: name: Run tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.19 - name: Install dependencies shell: bash run: sudo apt-get update && sudo apt-get -y install libgl1-mesa-dev xorg-dev libasound2-dev - name: Run tests shell: bash run: xvfb-run go test -v ./... build-win: name: Build Windows binary needs: tests runs-on: windows-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.19 - name: Build Windows exe shell: bash run: go build - name: Upload Windows exe uses: actions/upload-artifact@v3 with: name: neko-win path: | LICENSE neko.exe build-mac: name: Build MacOS binary needs: tests runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.19 - name: Build Mac exe shell: bash run: go build - name: Tar it up shell: bash run: tar -zcvf neko-mac.tar.gz neko LICENSE - name: Upload Mac exe uses: actions/upload-artifact@v3 with: name: neko-mac path: neko-mac.tar.gz build-lin: name: Build Linux binary needs: tests runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.19 - name: Install dependencies shell: bash run: sudo apt-get update && sudo apt-get -y install libgl1-mesa-dev xorg-dev libasound2-dev - name: Build Linux exe shell: bash run: go build -v - name: Tar it up shell: bash run: tar -zcvf neko-lin.tar.gz neko LICENSE - name: Upload Linux exe uses: actions/upload-artifact@v3 with: name: neko-lin path: neko-lin.tar.gz upload-bundle: name: Bundle binaries with dev assets runs-on: ubuntu-latest needs: [build-lin, build-mac, build-win] steps: - uses: actions/checkout@v3 - name: Download Windows binary uses: actions/download-artifact@v3 with: name: neko-win - name: Download Linux binary uses: actions/download-artifact@v3 with: name: neko-lin - name: Download Mac binary uses: actions/download-artifact@v3 with: name: neko-mac - name: Upload beta testing bundle uses: actions/upload-artifact@v3 with: name: neko-bundle path: | README.md LICENSE neko-lin.tar.gz neko-mac.tar.gz neko.exe