# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: Node.js CI on: release: types: [published] push: tags: - v* branches: [ master, reduce-wine] pull_request: branches: [ master ] # # Allows you to run this workflow manually from the Actions tab # workflow_dispatch: jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: node-version: [16.x] ARCH: ['x86_64'] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Prepare run: | pwd ls -l export ACTION_MODE=true npm uninstall node-gyp -g npm install node-gyp nw-gyp npm -g - id: Tag run: | tag='continuous' name='Continuous Build' if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then tag='${{ github.ref_name }}' name='${{ github.ref_name }}' fi echo "tag result: $tag - $name" echo "::set-output name=tag::$tag" echo "::set-output name=name::$name" - name: Build run: docker-compose up - name: Refactor Directory Structure run: | sudo chmod -R 777 package.nw node ls -l sudo rm -rf cache tmp mkdir ${{ env. name }} sudo find -maxdepth 1 -not -name ${{ env.name }} -not -name . -exec mv {} ${{ env.name }} \; sudo cp -r "${{ env.name }}/package.nw/node_modules/nodegit" nodegit sudo cp -r "${{ env.name }}/compiler" compiler ls -l cd "${{ env.name }}" env: name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}' - name: Compress run: | ls -l tar -zvcf compiler.tar.gz compiler tar -zvcf nodegit.tar.gz nodegit sudo rm -rf compiler nodegit ls -l env: name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}' - name: Build AppImage && Pack run: | bash ./${{ env.name }}/tools/appimage.sh wget "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage" chmod a+x appimagetool-x86_64.AppImage # build AppImage ./appimagetool-x86_64.AppImage ./${{ env.name }}/tmp/AppDir ${{ env.name }}_${{ env.ARCH }}_wine.AppImage # pack tar -zvcf ${{ env.name }}_${{ env.ARCH }}_wine.tar.gz ${{ env.name }} # reduce wine export REDUCE_WINE=true bash ${{ env.name }}/tools/fix-core bash ${{ env.name }}/tools/fix-other bash ./${{ env.name }}/tools/appimage.sh # build AppImage ./appimagetool-x86_64.AppImage ./${{ env.name }}/tmp/AppDir ${{ env.name }}_${{ env.ARCH }}_reduce_wine.AppImage # pack tar -zvcf ${{ env.name }}_${{ env.ARCH }}_reduce_wine.tar.gz ${{ env.name }} sudo rm -rf appimagetool-x86_64.AppImage ${{ env.name }} env: name: 'WeChat_Dev_Tools_${{ steps.tag.outputs.tag }}' ARCH: '${{ matrix.ARCH }}' - name: Create release and upload artifacts if: startsWith(github.ref, 'refs/heads/') env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage chmod +x pyuploadtool-x86_64.AppImage ./pyuploadtool-x86_64.AppImage WeChat*.AppImage *.tar.gz - name: Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') with: # note you'll typically need to create a personal access token # with permissions to create releases in the other repo name: ${{ steps.tag.outputs.name }} tag_name: ${{ steps.tag.outputs.tag }} files: | *.tar.gz *.AppImage