From 83645b241c8119abc5e06b87cebfeaa78fe61893 Mon Sep 17 00:00:00 2001 From: msojocs Date: Wed, 11 May 2022 21:30:40 +0800 Subject: [PATCH] feat: actions --- .github/workflows/release.yml | 113 ++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..eacf3f0 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,113 @@ +# 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: Build Packages + +on: + release: + types: [published] + push: + tags: + - v* + branches: [ master, dev, 45-snap-version] + pull_request: + branches: [ master ] + # # Allows you to run this workflow manually from the Actions tab + # workflow_dispatch: + +jobs: + build: + name: Build Base Packages + 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 + with: + submodules: 'recursive' + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + + - name: Prepare + run: | + cd compiler && npm install + echo "$UID, $GID" + + - name: Generate TAG + 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: Compress + run: | + ls -l + mkdir -p tmp/build + sudo rm -rf test + tar -zcf compiler.tar.gz * + mv compiler.tar.gz tmp/build + cd tmp/build + ls -l + + - name: Upload artifact + uses: actions/upload-artifact@v2.3.1 + with: + # Artifact name + name: wechat-devtools-${{ matrix.ARCH }}.build + path: tmp/build + + upload: + name: Create release and upload artifacts + needs: + - build + runs-on: ubuntu-latest + steps: + - name: Download artifacts + uses: actions/download-artifact@v2 + - name: Inspect directory after downloading artifacts + run: ls -alFR + + - name: Generate TAG + 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: 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 **build/*.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: | + **build/*.tar.gz