name: Build Hack-Browser-Data Release on: release: types: [created] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v1 - name: Use Golang uses: actions/setup-go@v1 with: go-version: "1.15" - name: Build with xgo uses: crazy-max/ghaction-xgo@v1 with: xgo_version: latest go_version: ${{ matrix.go_version }} dest: build prefix: hack-browser-data targets: windows/amd64,windows/386,linux/386,linux/amd64,linux/arm,linux/arm64,darwin/amd64 v: true x: false race: false ldflags: -s -w buildmode: default - name: Set Variable run: | echo "RELEASE_WIN32=hack-browser-data-${{ github.event.release.tag_name}}windows-32bit" >> $GITHUB_ENV echo "RELEASE_WIN64=hack-browser-data-${{ github.event.release.tag_name}}windows-64bit" >> $GITHUB_ENV echo "RELEASE_OSX=hack-browser-data-${{ github.event.release.tag_name}}osx-64bit" >> $GITHUB_ENV echo "RELEASE_Linux386=hack-browser-data-${{ github.event.release.tag_name}}linux-386" >> $GITHUB_ENV echo "RELEASE_LinuxARM64=hack-browser-data-${{ github.event.release.tag_name}}linux-arm64" >> $GITHUB_ENV echo "RELEASE_LinuxAMD64=hack-browser-data-${{ github.event.release.tag_name}}linux-amd64" >> $GITHUB_ENV echo "RELEASE_LinuxARM=hack-browser-data-${{ github.event.release.tag_name}}linux-arm" >> $GITHUB_ENV - name: Build zip run: | mv build/hack-browser-data-windows*386.exe "$RELEASE_WIN32".exe mv build/hack-browser-data-windows*amd64.exe "$RELEASE_WIN64".exe mv build/hack-browser-data-linux-*386 "$RELEASE_Linux386" mv build/hack-browser-data-linux-*amd64 "$RELEASE_LinuxAMD64" mv build/hack-browser-data-linux-*arm64 "$RELEASE_LinuxARM64" mv build/hack-browser-data-linux-*arm-* "$RELEASE_LinuxARM" mv build/hack-browser-data-darwin-*amd64 "$RELEASE_OSX" zip "$RELEASE_WIN32".zip "$RELEASE_WIN32".exe zip "$RELEASE_WIN64".zip "$RELEASE_WIN64".exe zip "$RELEASE_Linux386".zip "$RELEASE_Linux386" zip "$RELEASE_LinuxAMD64".zip "$RELEASE_LinuxAMD64" zip "$RELEASE_LinuxARM64".zip "$RELEASE_Linux386" zip "$RELEASE_LinuxARM".zip "$RELEASE_LinuxARM" zip "$RELEASE_OSX".zip "$RELEASE_OSX" - name: Create Release id: create_release uses: monkeyWie/create-release@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: true - name: Upload Release - Windows 64bit uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_WIN64 }}.zip asset_name: ${{ env.RELEASE_WIN64 }}.zip asset_content_type: application/zip - name: Upload Release - Windows 32bit uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_WIN32 }}.zip asset_name: ${{ env.RELEASE_WIN32 }}.zip asset_content_type: application/zip - name: Upload Release - Linux amd64 uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_LinuxAMD64 }}.zip asset_name: ${{ env.RELEASE_LinuxAMD64 }}.zip asset_content_type: application/zip - name: Upload Release - Linux 386 uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_Linux386 }}.zip asset_name: ${{ env.RELEASE_Linux386 }}.zip asset_content_type: application/zip - name: Upload Release - Linux arm64 uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_LinuxARM64 }}.zip asset_name: ${{ env.RELEASE_LinuxARM64 }}.zip asset_content_type: application/zip - name: Upload Release - Linux arm uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_LinuxARM }}.zip asset_name: ${{ env.RELEASE_LinuxARM }}.zip asset_content_type: application/zip - name: Upload Release - Darwin amd64 uses: actions/upload-release-asset@v1.0.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./${{ env.RELEASE_OSX }}.zip asset_name: ${{ env.RELEASE_OSX }}.zip asset_content_type: application/zip