GitHub Action自动打包Electron APP

最近消失了一个月,忙公司的一个比较好玩的项目,所以博客断更了一个月。为了证明我是真的在忙,截一个图:

GitHub Action自动打包Electron APP

这个项目,后期要上Electron,所以就研究了下自动打包,这次就分享下自动打包的,如果对Action不明白的,可以看我之前的文章,我就不在详细的说了。

# Workflow's name
name: Build Electron App For Win/Mac

# Workflow's trigger
on:
  push:
    tags:
      - "v*.*.*"

# Workflow's jobs
jobs:
  # job's id
  release:
    # job's name
    name: build and release electron app

    # the type of machine to run the job on
    runs-on: ${{ matrix.os }}

    # create a build matrix for jobs
    strategy:
      fail-fast: false
      matrix:
        os: [windows-2019, macos-10.15]

    # create steps
    steps:
      # step1: check out repository
      - name: Check out git repository
        uses: actions/checkout@v2

      # step2: install node env
      - name: Install Node.js
        uses: actions/setup-node@v2-beta

      # step3: npm install
      - name: npm install
        run: |
          npm install

      # step4: build app for mac/win
      - name: build windows app
        if: matrix.os == 'windows-2019'
        run: |
          npm run electron:build-win
        env:
          GH_TOKEN: ${{ secrets.ACCESS_TOKEN }}

      - name: build mac app
        if: matrix.os == 'macos-10.15'
        run: |
          npm run electron:build
        env:
          GH_TOKEN: ${{ secrets.ACCESS_TOKEN }}

      # step5: cleanup artifacts in dist_electron
      - name: cleanup artifacts for windows
        if: matrix.os == 'windows-2019'
        run: |
          npx rimraf "dist_electron/!(*.exe)"

      - name: cleanup artifacts for macosZ
        if: matrix.os == 'macos-10.15'
        run: |
          npx rimraf "dist_electron/!(*.dmg)"

      # step6: upload artifacts
      - name: upload artifacts
        uses: actions/upload-artifact@v2
        with:
          name: ${{ matrix.os }}
          path: dist_electron

      # step7: create release
      - name: release
        uses: softprops/action-gh-release@v1
        if: startsWith(github.ref, 'refs/tags/')
        with:
          files: "dist_electron/**"
        env:
          GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}

注意这里的secrets.ACCESS_TOKEN,需要自己去设置,代码有注释,就不用再详细说了。触发方式是提交代码的时候,添加tag标签。

GitHub Action自动打包Electron APP

然后,Releases里面就会生成对应的版本:

GitHub Action自动打包Electron APP

注意:空间是有限制的。

已有 4 条评论

  1. 回复

    HttpError: 401 Unauthorized

    1. 王叨叨 王叨叨 [作者]
      回复

      注意看secrets.ACCESS_TOKEN,这个需要去配置,可以看我之前的文章。

  2. 回复

    我配置了为啥总是

    Error #1 --------------------------------------------------------------------------------
    HttpError: 401 Unauthorized
    {
    "message": "Bad credentials",
    "documentation_url": "https://docs.github.com/rest"
    }
    Headers: {
    "server": "GitHub.com",
    "date": "Mon, 26 Oct 2020 06:42:10 GMT",
    "content-type": "application/json; charset=utf-8",
    "content-length": "80",
    "connection": "close",
    "status": "401 Unauthorized",
    "x-github-media-type": "github.v3; format=json",
    "x-ratelimit-limit": "60",
    "x-ratelimit-remaining": "59",
    "x-ratelimit-reset": "1603698130",
    "x-ratelimit-used": "1",
    "access-control-expose-headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type,

  3. 回复

    不明觉厉。只会用github action部署hexo🤣

添加新评论