name: build_mobile on: push: tags: - 'v*' # "e.g. v0.4" workflow_dispatch: jobs: env: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: xom9ikk/dotenv@v2 with: path: ".github/" - run: | echo "go_version=${{ env.GO_VERSION }}" >> $GITHUB_OUTPUT - run: | VERSION=$(cat ./VERSION) echo "waku_version=$VERSION" >> $GITHUB_OUTPUT build-android: needs: env runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Checkout code uses: actions/checkout@v3 - name: Get submodules hash id: submodules run: | echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT - name: Cache submodules uses: actions/cache@v3 with: path: | vendor/ .git/modules key: ${{ runner.os }}-vendor-modules-${{ needs.env.outputs.go_version }} - name: Install Go uses: actions/setup-go@v4 with: go-version: ${{ needs.env.outputs.go_version }} cache: false - name: Build run: | make install-gomobile make mobile-android || make mobile-android cd ./build/lib tar -czvf gowaku-${{ needs.env.outputs.waku_version }}-android.tar.gz gowaku.aar gowaku-sources.jar - name: Upload asset uses: actions/upload-artifact@v3 with: name: gowaku-${{ needs.env.outputs.waku_version }}-android.tar.gz path: ./build/lib/gowaku-${{ needs.env.outputs.waku_version }}-android.tar.gz if-no-files-found: error build-ios: needs: env runs-on: macos-latest timeout-minutes: 60 steps: - name: Checkout code uses: actions/checkout@v3 - name: Get submodules hash id: submodules run: | echo "hash=$(git submodule status | awk '{print $1}' | sort | shasum -a 256 | sed 's/[ -]*//g')" >> $GITHUB_OUTPUT - name: Cache submodules uses: actions/cache@v3 with: path: | vendor/ .git/modules key: ${{ runner.os }}-vendor-modules-${{ steps.submodules.outputs.hash }} - name: Install Go uses: actions/setup-go@v4 with: go-version: ${{ needs.env.outputs.go_version }} cache: false - name: Build run: | make install-gomobile make mobile-ios cd ./build/lib tar -czvf gowaku-${{ needs.env.outputs.waku_version }}-ios.tar.gz Gowaku.xcframework - name: Upload asset uses: actions/upload-artifact@v3 with: name: gowaku-${{ needs.env.outputs.waku_version }}-ios.tar.gz path: ./build/lib/gowaku-${{ needs.env.outputs.waku_version }}-ios.tar.gz if-no-files-found: error