diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 82b6058..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Build image - -on: - - push - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - - - name: Set up Docker runtime - uses: docker/setup-buildx-action@v3 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Install dependencies - run: yarn install - - - name: Generate code - run: make gen - - - name: Build image - uses: docker/build-push-action@v6 - with: - context: . - push: false diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..886f42f --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,100 @@ +name: CI + +on: + push: + +jobs: + tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: yarn install + + - name: Generate code + run: make gen + + - name: Run checks + run: make check + + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Set up Docker runtime + uses: docker/setup-buildx-action@v3 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + + - name: Install dependencies + run: yarn install + + - name: Generate code + run: make gen + + - name: Build image + uses: docker/build-push-action@v6 + with: + context: . + load: true + push: false + tags: local/app:latest + + - name: Save image + run: docker save local/app:latest -o image.tar + + - name: Upload image + uses: actions/upload-artifact@v4 + with: + name: docker-image + path: image.tar + retention-days: 1 + + release: + runs-on: ubuntu-latest + needs: [tests, build] + if: github.ref_name == github.event.repository.default_branch + permissions: + contents: read + packages: write + steps: + - name: Download image + uses: actions/download-artifact@v4 + with: + name: docker-image + + - name: Set up Docker runtime + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Load image + run: docker load -i image.tar + + - name: Set image name + run: echo "IMAGE_NAME=ghcr.io/hyperleda/hyperleda-webapp" >> "$GITHUB_ENV" + + - name: Set short SHA + run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> "$GITHUB_ENV" + + - name: Push image + run: | + docker tag local/app:latest ${{ env.IMAGE_NAME }}:${{ env.SHORT_SHA }} + docker tag local/app:latest ${{ env.IMAGE_NAME }}:latest + docker push ${{ env.IMAGE_NAME }}:${{ env.SHORT_SHA }} + docker push ${{ env.IMAGE_NAME }}:latest diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index bd31064..0000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,49 +0,0 @@ -name: Release image - -on: - workflow_dispatch: - -jobs: - release: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v6 - - - name: Set up Docker runtime - uses: docker/setup-buildx-action@v3 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Install dependencies - run: yarn install - - - name: Generate code - run: make gen - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set image name - run: echo "IMAGE_NAME=ghcr.io/hyperleda/hyperleda-webapp" >> $GITHUB_ENV - - - name: Set short SHA - run: echo "SHORT_SHA=${GITHUB_SHA::7}" >> $GITHUB_ENV - - - name: Build and push image - uses: docker/build-push-action@v6 - with: - context: . - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.SHORT_SHA }} - ${{ env.IMAGE_NAME }}:latest diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml deleted file mode 100644 index f9599a5..0000000 --- a/.github/workflows/tests.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Static checks & tests - -on: - - push - -jobs: - lint: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' - - - name: Install dependencies - run: yarn install - - - name: Generate code - run: make gen - - - name: Run check - run: make check diff --git a/src/pages/SearchResults.tsx b/src/pages/SearchResults.tsx index e3efd95..d339882 100644 --- a/src/pages/SearchResults.tsx +++ b/src/pages/SearchResults.tsx @@ -228,7 +228,7 @@ export function SearchResultsPage(): ReactElement { const [searchParams] = useSearchParams(); const navigate = useNavigate(); const query = searchParams.get("q") || ""; - const page = parseInt(searchParams.get("page") || "1"); + const page = parseInt(searchParams.get("page") || "0"); const pageSize = parseInt(searchParams.get("pagesize") || "25"); useEffect(() => {