From 16035093c3a239e839222a7c3697b6973a8b2061 Mon Sep 17 00:00:00 2001 From: Robin Genz Date: Mon, 25 Mar 2024 09:52:50 +0100 Subject: [PATCH] ci: add GitHub workflows --- .github/workflows/ci.yml | 62 ++++++++++++++++++++++++ .github/workflows/lock.yml | 21 ++++++++ .github/workflows/needs-reply-remove.yml | 16 ++++++ .github/workflows/needs-reply.yml | 16 ++++++ .github/workflows/needs-triage.yml | 20 ++++++++ 5 files changed, 135 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/lock.yml create mode 100644 .github/workflows/needs-reply-remove.yml create mode 100644 .github/workflows/needs-reply.yml create mode 100644 .github/workflows/needs-triage.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a31abf0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: CI + +on: + push: + branches: + - main + paths-ignore: + - "**.md" + - ".vscode/**" + pull_request: + paths-ignore: + - "**.md" + - ".vscode/**" + workflow_dispatch: + +env: + NODE_VERSION: 18 + JAVA_VERSION: 17 + +jobs: + build: + name: Build + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Set up Java ${{ env.JAVA_VERSION }} + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: ${{ env.JAVA_VERSION }} + - name: Install dependencies + run: npm ci + - name: Build iOS + run: npm run verify:ios + - name: Build Android + run: npm run verify:android + - name: Build Web + run: npm run verify:web + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: dist + path: dist + lint: + name: Lint + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Install dependencies + run: npm ci + - name: Run Lint script + run: npm run lint diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 0000000..011546c --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,21 @@ +name: Lock old issues and pull requests that are closed + +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +permissions: + issues: write + pull-requests: write + +concurrency: + group: lock + +jobs: + action: + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v3 + with: + issue-inactive-days: '56' diff --git a/.github/workflows/needs-reply-remove.yml b/.github/workflows/needs-reply-remove.yml new file mode 100644 index 0000000..c872e69 --- /dev/null +++ b/.github/workflows/needs-reply-remove.yml @@ -0,0 +1,16 @@ +name: Remove needs-reply label + +on: + issue_comment: + types: + - created + +jobs: + needs-reply: + runs-on: ubuntu-latest + steps: + - name: Remove needs-reply label + run: | + curl --request DELETE \ + --url 'https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/needs%3A%20reply' \ + --header 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/needs-reply.yml b/.github/workflows/needs-reply.yml new file mode 100644 index 0000000..0b3e8de --- /dev/null +++ b/.github/workflows/needs-reply.yml @@ -0,0 +1,16 @@ +name: Close old issues that need reply + +on: + schedule: + - cron: '0 0 * * *' + workflow_dispatch: + +jobs: + needs-reply: + runs-on: ubuntu-latest + steps: + - name: Close old issues that need reply + uses: dwieeb/needs-reply@v2 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-label: 'needs: reply' diff --git a/.github/workflows/needs-triage.yml b/.github/workflows/needs-triage.yml new file mode 100644 index 0000000..8de2b67 --- /dev/null +++ b/.github/workflows/needs-triage.yml @@ -0,0 +1,20 @@ +name: Add needs-triage label + +on: + issues: + types: + - opened + +jobs: + needs-triage: + runs-on: ubuntu-latest + steps: + - name: Add needs-triage label + if: join(github.event.issue.labels) == '' + run: | + curl --request POST \ + --url 'https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels' \ + --header 'Authorization: token ${{ secrets.GITHUB_TOKEN }}' \ + --header 'Content-Type: application/json' \ + --header 'Accept: application/vnd.github.v3+json' \ + --data-raw '{ "labels": ["needs: triage"] }'