update CI builds to go 1.21 #187
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: win+mac+linux | |
on: | |
push | |
jobs: | |
build-linux: | |
runs-on: ubuntu-20.04 # oldest possible OS | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.21 | |
- name: Install ebiten linux deps | |
run: make deps-debian | |
- name: Build for Linux | |
env: | |
TAG: ${{ github.ref_name }} | |
run: make linux | |
- name: Zip first to prevent GH Artifacts from removing the executable flag | |
run: | | |
cd dist | |
zip -vr "shark-linux.zip" . | |
- name: Upload linux build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Linux shark | |
path: dist/shark-linux.zip | |
- name: Upload artifacts to tagged release | |
if: github.ref_type == 'tag' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
TAG: ${{ github.ref_name }} | |
run: | | |
# Because we have multiple OSes in the build matrix, we need to either | |
# create a new release, or upload to the release if it already exists. | |
if gh release view "$TAG"; then | |
gh release upload "$TAG" dist/*.zip | |
else | |
# Work around GH being daft: | |
# https://github.com/actions/checkout/issues/290 | |
git fetch --force --tags | |
echo '```' > RELEASE_NOTES | |
git tag -l --format='%(contents)' "$TAG" >> RELEASE_NOTES | |
echo '```' >> RELEASE_NOTES | |
cat RELEASE_NOTES | |
gh release create "$TAG" dist/*.zip -F RELEASE_NOTES | |
fi | |
build-windows: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.21 | |
- name: Install ebiten linux deps | |
run: make deps-debian | |
- name: Cross-compile Windows build | |
run: make windows | |
- name: Upload cross-compiled Windows build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Windows shark | |
path: dist/*.exe | |
- name: Upload artifacts to tagged release | |
if: github.ref_type == 'tag' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
TAG: ${{ github.ref_name }} | |
run: | | |
# Because we have multiple OSes in the build matrix, we need to either | |
# create a new release, or upload to the release if it already exists. | |
if gh release view "$TAG"; then | |
gh release upload "$TAG" dist/*.exe | |
else | |
# Work around GH being daft: | |
# https://github.com/actions/checkout/issues/290 | |
git fetch --force --tags | |
echo '```' > RELEASE_NOTES | |
git tag -l --format='%(contents)' "$TAG" >> RELEASE_NOTES | |
echo '```' >> RELEASE_NOTES | |
cat RELEASE_NOTES | |
gh release create "$TAG" dist/*.exe -F RELEASE_NOTES | |
fi | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v3 | |
with: | |
go-version: 1.21 | |
- name: Build for macOS | |
env: | |
TAG: ${{ github.ref_name }} | |
run: make macos | |
- name: Zip first to prevent GH Artifacts from removing the executable flag | |
run: | | |
cd dist | |
zip -vr "shark-macos.zip" . | |
- name: Upload macOS build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macOS shark | |
path: dist/shark-macos.zip | |
- name: Upload artifacts to tagged release | |
if: github.ref_type == 'tag' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
TAG: ${{ github.ref_name }} | |
run: | | |
# Because we have multiple OSes in the build matrix, we need to either | |
# create a new release, or upload to the release if it already exists. | |
if gh release view "$TAG"; then | |
gh release upload "$TAG" dist/*.zip | |
else | |
# Work around GH being daft: | |
# https://github.com/actions/checkout/issues/290 | |
git fetch --force --tags | |
echo '```' > RELEASE_NOTES | |
git tag -l --format='%(contents)' "$TAG" >> RELEASE_NOTES | |
echo '```' >> RELEASE_NOTES | |
cat RELEASE_NOTES | |
gh release create "$TAG" dist/*.zip -F RELEASE_NOTES | |
fi |