Skip to content

add badge

add badge #73

Workflow file for this run

name: Deploy
on:
push:
tags:
- 'v*.*.*'
jobs:
build-ubuntu-macos:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23.*'
- name: Build for ${{ matrix.os }}
run: |
mkdir -p artifacts/${{ matrix.os }}
if [ ${{ matrix.os }} = 'ubuntu-latest' ]; then
GOOS=linux GOARCH=amd64 go build -o artifacts/${{ matrix.os }}/addframe-linux
elif [ ${{ matrix.os }} = 'macos-latest' ]; then
GOOS=darwin GOARCH=amd64 go build -o artifacts/${{ matrix.os }}/addframe_amd64
GOOS=darwin GOARCH=arm64 go build -o artifacts/${{ matrix.os }}/addframe_arm64
lipo -create -output artifacts/${{ matrix.os }}/addframe-macos artifacts/${{ matrix.os }}/addframe_amd64 artifacts/${{ matrix.os }}/addframe_arm64
rm artifacts/${{ matrix.os }}/addframe_amd64 artifacts/${{ matrix.os }}/addframe_arm64
fi
shell: bash
- name: Copy addframe.json
run: |
cp addframe.json artifacts/${{ matrix.os }}/
cp south.json artifacts/${{ matrix.os }}/
cp southeast.json artifacts/${{ matrix.os }}/
cp southwest.json artifacts/${{ matrix.os }}/
shell: bash
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.os }}
path: artifacts/${{ matrix.os }}
build-windows:
runs-on: windows-latest
needs: build-ubuntu-macos
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23.*'
- name: Build for Windows
run: |
mkdir -p artifacts/windows-latest
go build -o artifacts/windows-latest/addframe.exe
shell: pwsh
- name: Copy addframe.json
run: |
Copy-Item -Path addframe.json -Destination artifacts/windows-latest/
Copy-Item -Path south.json -Destination artifacts/windows-latest/
Copy-Item -Path southeast.json -Destination artifacts/windows-latest/
Copy-Item -Path southwest.json -Destination artifacts/windows-latest/
shell: pwsh
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-windows-latest
path: artifacts/windows-latest
zip:
needs: [build-ubuntu-macos, build-windows]
runs-on: ubuntu-latest
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
- name: List artifacts directory
run: |
echo "Listing artifacts directory:"
ls -la ./artifacts || echo "artifacts directory not found"
echo "Listing zipped artifacts directory:"
ls -la ./artifacts/zipped-artifacts/ || echo "zipped-artifacts directory not found"
shell: bash
- name: Create ZIP files
run: |
mkdir -p artifacts/zipped-artifacts
cd artifacts
# List files to confirm existence
echo "Listing files in build-ubuntu-latest/"
ls -la build-ubuntu-latest
echo "Listing files in build-macos-latest/"
ls -la build-macos-latest
echo "Listing files in build-windows-latest/"
ls -la build-windows-latest
# Create ZIP files
zip -r zipped-artifacts/addframe-linux.zip build-ubuntu-latest/addframe-linux build-ubuntu-latest/addframe.json build-ubuntu-latest/south.json build-ubuntu-latest/southeast.json build-ubuntu-latest/southwest.json
zip -r zipped-artifacts/addframe-macos.zip build-macos-latest/addframe-macos build-macos-latest/addframe.json build-macos-latest/south.json build-macos-latest/southeast.json build-macos-latest/southwest.json
zip -r zipped-artifacts/addframe-windows.zip build-windows-latest/addframe.exe build-windows-latest/addframe.json build-windows-latest/south.json build-windows-latest/southeast.json build-windows-latest/southwest.json
# Verify ZIP files creation
echo "Listing ZIP files"
ls -la zipped-artifacts/
shell: bash
- name: Upload ZIP files
uses: actions/upload-artifact@v4
with:
name: zipped-artifacts
path: artifacts/zipped-artifacts/
if-no-files-found: error
retention-days: 90
compression-level: 6
overwrite: true
release:
needs: zip
runs-on: ubuntu-latest
steps:
- name: Download ZIP files
uses: actions/download-artifact@v4
with:
name: zipped-artifacts
path: ./artifacts
- name: Display structure of downloaded files
run: ls -R
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
./artifacts/addframe-linux.zip
./artifacts/addframe-macos.zip
./artifacts/addframe-windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}