Skip to content

update CI builds to go 1.21 #187

update CI builds to go 1.21

update CI builds to go 1.21 #187

Workflow file for this run

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