diff --git a/.github/workflows/build-cd.yml b/.github/workflows/build-cd.yml index 6e40646..1b94bcc 100644 --- a/.github/workflows/build-cd.yml +++ b/.github/workflows/build-cd.yml @@ -32,7 +32,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest] + os: [macos-latest, ubuntu-latest, ubuntu-18.04] steps: - name: Checkout code uses: actions/checkout@v2 @@ -40,6 +40,7 @@ jobs: uses: actions/setup-go@v2 with: go-version: '1.16' + - name: Install dependencies for macOS build if: ${{ matrix.os == 'macos-latest' }} run: | @@ -60,4 +61,53 @@ jobs: upload_url: ${{ needs.create-release.outputs.upload_url }} asset_path: ./libipfs${{ github.event.release.tag_name }}-macOS-x64.zip asset_name: libipfs${{ github.event.release.tag_name }}-macOS-x64.zip + asset_content_type: application/zip + + - name: Install dependencies for linux build + if: ${{ matrix.os == 'ubuntu-latest' }} + run: | + sudo apt update && sudo apt install -y build-essential zip + go mod download + + - name: Build and package artifacts for linux build + if: ${{ matrix.os == 'ubuntu-latest' }} + run: | + make build_linux + mkdir libipfs${{ github.event.release.tag_name }}-linux-x64/ + cp -rf ./bin/libipfs-linux* libipfs${{ github.event.release.tag_name }}-linux-x64/ + zip -r libipfs${{ github.event.release.tag_name }}-linux-x64.zip libipfs${{ github.event.release.tag_name }}-linux-x64/ + - name: Upload linux build artifacts + if: ${{ matrix.os == 'ubuntu-latest' }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: ./libipfs${{ github.event.release.tag_name }}-linux-x64.zip + asset_name: libipfs${{ github.event.release.tag_name }}-linux-x64.zip + asset_content_type: application/zip + + - name: Install dependencies for windows build + if: ${{ matrix.os == 'ubuntu-18.04' }} + run: | + sudo apt update && sudo apt install -y gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 wine64 + go mod download + + - name: Build and package artifacts for windows build + if: ${{ matrix.os == 'ubuntu-18.04' }} + run: | + make build_windows + mkdir libipfs${{ github.event.release.tag_name }}-win-x64/ + cp -rf ./bin/libipfs-win* libipfs${{ github.event.release.tag_name }}-win-x64/ + zip -r libipfs${{ github.event.release.tag_name }}-win-x64.zip libipfs${{ github.event.release.tag_name }}-win-x64/ + + - name: Upload windows build artifacts + if: ${{ matrix.os == 'ubuntu-18.04' }} + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ needs.create-release.outputs.upload_url }} + asset_path: ./libipfs${{ github.event.release.tag_name }}-win-x64.zip + asset_name: libipfs${{ github.event.release.tag_name }}-win-x64.zip asset_content_type: application/zip \ No newline at end of file