Files
treelike/.github/workflows/release.yml
2024-09-02 01:44:34 +03:00

81 lines
2.2 KiB
YAML

name: Release
on:
push:
branches:
- master
permissions:
contents: write
pull-requests: write
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Test
run: go test -v
generate:
name: Generate cross-platform builds
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Create dist/ dir
run: mkdir dist
- name: Generate build files
uses: thatisuday/go-cross-build@v1
with:
platforms: 'linux/amd64, darwin/amd64, windows/amd64' # , darwin/arm64' # '
package: ''
name: 'treelike'
compress: 'true'
dest: 'dist'
- name: Upload builds
uses: actions/upload-artifact@v4
with:
name: dist
path: dist
release-please:
name: Release
runs-on: ubuntu-latest
needs:
- test
- generate
steps:
- name: Download builds
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Verify Release Artifacts
run: |
ls -la dist
for i in "linux-amd64" "darwin-amd64" "windows-amd64"; do
if [[ ! -f ./dist/treelike-$i.tar.gz ]]; then
echo "File not found: ./dest/treelike-$i.tar.gz"
exit 1
fi
done
- uses: googleapis/release-please-action@v4
id: release
with:
release-type: simple
- name: Upload Release Artifacts
if: ${{ steps.release.outputs.release_created }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release upload ${{ steps.release.outputs.tag_name }} ./dist/treelike-linux-amd64.tar.gz
gh release upload ${{ steps.release.outputs.tag_name }} ./dist/treelike-darwin-amd64.tar.gz
gh release upload ${{ steps.release.outputs.tag_name }} ./dist/treelike-windows-amd64.zip
# gh release upload ${{ steps.release.outputs.tag_name }} ./dist/treelike-darwin-arm64.tar.gz