diff --git a/.github/workflows/deploy.yml b/.forgejo/workflows/deploy.yml similarity index 70% rename from .github/workflows/deploy.yml rename to .forgejo/workflows/deploy.yml index b62eaea..84ab00d 100644 --- a/.github/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -5,21 +5,18 @@ on: - main pull_request: {} +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + permissions: - actions: write contents: read jobs: - cancel: - name: ๐Ÿ›‘ Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - uses: styfle/cancel-workflow-action@0.12.1 - test: name: ๐Ÿงช Test - needs: [cancel] runs-on: ubuntu-latest + timeout-minutes: 20 services: postgres: @@ -33,18 +30,10 @@ jobs: --health-interval 10s --health-timeout 5s --health-retries 5 - ports: - - 5432:5432 steps: - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v4 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: 'npm' + uses: https://github.com/actions/checkout@v4 - name: ๐Ÿ“ฅ Install dependencies run: npm ci @@ -52,22 +41,16 @@ jobs: - name: ๐Ÿงช Run unit tests run: npm run test:run env: - DATABASE_URL: postgresql://test:test@localhost:5432/brackt_test + DATABASE_URL: postgresql://test:test@postgres:5432/brackt_test NODE_OPTIONS: --max-old-space-size=4096 typecheck: name: สฆ TypeScript - needs: [cancel] runs-on: ubuntu-latest + timeout-minutes: 10 steps: - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v4 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: 'npm' + uses: https://github.com/actions/checkout@v4 - name: ๐Ÿ“ฅ Install dependencies run: npm ci @@ -77,17 +60,11 @@ jobs: lint: name: ๐Ÿ” Lint - needs: [cancel] runs-on: ubuntu-latest + timeout-minutes: 10 steps: - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v4 - - - name: โŽ” Setup node - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' - cache: 'npm' + uses: https://github.com/actions/checkout@v4 - name: ๐Ÿ“ฅ Install dependencies run: npm ci @@ -98,42 +75,42 @@ jobs: build: name: ๐Ÿณ Build needs: [test, typecheck, lint] - # only build/deploy main branch on pushes if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }} runs-on: ubuntu-latest + timeout-minutes: 30 steps: - name: โฌ‡๏ธ Checkout repo - uses: actions/checkout@v4 + uses: https://github.com/actions/checkout@v4 - name: ๐Ÿณ Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: https://github.com/docker/setup-buildx-action@v3 - name: ๐Ÿ”“ Login to Container Registry - uses: docker/login-action@v3 + uses: https://github.com/docker/login-action@v3 with: registry: ${{ vars.CONTAINER_REGISTRY }} username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_PASSWORD }} - name: ๐Ÿ—„๏ธ Build and Push to Container Registry - uses: docker/build-push-action@v5 + uses: https://github.com/docker/build-push-action@v5 with: context: . push: true tags: ${{ vars.CONTAINER_REGISTRY }}/brackt:latest - cache-from: type=gha - cache-to: type=gha,mode=max + cache-from: type=registry,ref=${{ vars.CONTAINER_REGISTRY }}/brackt:buildcache + cache-to: type=registry,ref=${{ vars.CONTAINER_REGISTRY }}/brackt:buildcache,mode=max deploy: name: ๐Ÿš€ Deploy runs-on: ubuntu-latest + timeout-minutes: 10 needs: [build] - # only deploy main branch on pushes if: ${{ github.ref == 'refs/heads/main' && github.event_name == 'push' }} steps: - name: ๐Ÿš€ Deploy app to server - uses: appleboy/ssh-action@v1.0.3 + uses: https://github.com/appleboy/ssh-action@v1.0.3 env: REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }} REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }} diff --git a/.github/workflows/label-subissues.yaml b/.github/workflows/label-subissues.yaml deleted file mode 100644 index fb67e66..0000000 --- a/.github/workflows/label-subissues.yaml +++ /dev/null @@ -1,35 +0,0 @@ -name: Label Subissues -on: - issues: - types: [opened, edited] - -jobs: - apply-label: - runs-on: ubuntu-latest - permissions: - issues: write - steps: - - name: Check for Parent and Label - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ISSUE_NODE_ID: ${{ github.event.issue.node_id }} - run: | - # Use GraphQL to check if this issue has a parent - PARENT_ID=$(gh api graphql -f query=' - query($id: ID!) { - node(id: $id) { - ... on Issue { - parent { - id - } - } - } - }' -f id=$ISSUE_NODE_ID --jq '.data.node.parent.id') - - # If PARENT_ID is not null, it is a subissue - if [ "$PARENT_ID" != "null" ] && [ -n "$PARENT_ID" ]; then - echo "Subissue detected. Applying label..." - gh issue edit ${{ github.event.issue.number }} --add-label "subissue" - else - echo "This is a top-level issue." - fi diff --git a/oxlint.json b/oxlint.json new file mode 100644 index 0000000..91c983e --- /dev/null +++ b/oxlint.json @@ -0,0 +1,5 @@ +{ + "rules": { + "unicorn/no-array-sort": "error" + } +}