From ac282041437a1e94c130590d1ce9f71f83388114 Mon Sep 17 00:00:00 2001 From: sabertazimi Date: Fri, 26 Apr 2024 22:36:22 +0800 Subject: [PATCH] ci(release): add weekly release workflow --- .github/workflows/release.yml | 97 +++++++++++++++++++++++++++++++++++ 1 file changed, 97 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 0000000000..5d3a506267 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,97 @@ +name: Release + +on: + schedule: + - cron: '0 0 * * 1' + workflow_dispatch: + +jobs: + lint: + name: Linting + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 1 + - name: Setup pnpm + uses: pnpm/action-setup@v3 + - name: Setup Node environment + uses: actions/setup-node@v4 + with: + node-version: 20 + architecture: x64 + registry-url: https://registry.npmjs.org/ + cache: pnpm + - name: Install dependencies + run: | + pnpm install + - name: Run linter tests + run: | + pnpm lint + + build: + name: Building + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + node-version: [20] + architecture: [x64] + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + - name: Setup pnpm + uses: pnpm/action-setup@v3 + - name: Setup Node environment + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + architecture: ${{ matrix.architecture }} + registry-url: https://registry.npmjs.org/ + cache: pnpm + - name: Install dependencies + run: | + pnpm install + - name: Build application + run: | + pnpm build + + release: + name: Release + if: ${{ github.ref == 'refs/heads/main' }} + runs-on: ubuntu-latest + needs: [lint, build] + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + fetch-depth: 0 + - name: Import GPG key and setup git + uses: crazy-max/ghaction-import-gpg@v6 + with: + gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} + git_user_signingkey: true + git_commit_gpgsign: true + git_tag_gpgsign: true + - name: Setup pnpm + uses: pnpm/action-setup@v3 + - name: Setup Node environment + uses: actions/setup-node@v4 + with: + node-version: 20 + architecture: x64 + registry-url: https://registry.npmjs.org/ + cache: pnpm + - name: Install dependencies + run: | + pnpm install + - name: Commit and tag version + run: | + pnpm release + git push --follow-tags origin main