diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 443a91c3d..866fc2b4e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -7,3 +7,8 @@ updates: allow: - dependency-name: "@patternfly/*" dependency-type: "direct" + + - package-ecosystem: docker + directory: "/" + schedule: + interval: daily diff --git a/.github/workflows/image-build-2.yaml b/.github/workflows/image-build-2.yaml new file mode 100644 index 000000000..c76c15dc9 --- /dev/null +++ b/.github/workflows/image-build-2.yaml @@ -0,0 +1,132 @@ +name: Multiple Architecture Image Build 2 + +on: + workflow_dispatch: + push: + branches: + - "main" + - "release-*" + tags: + - "v*" + +concurrency: + group: image-build-2-${{ github.ref }} + cancel-in-progress: true + +env: + tag: ${{ github.ref == 'refs/heads/main' && 'latest' || github.ref_name }} + + # what is normally sent in as input + registry: "quay.io/sdickers" + image_name: "tackle2-ui" + containerfile: "./Dockerfile" + extra-args: "--ulimit nofile=4096:4096" + + # pre_build_cmd: | + # echo "registry=\"http://localhost:4873\"" >> .npmrc + # pre_build_cmd: | + # echo "registry=https://npm.pkg.github.com" >> .npmrc + +jobs: + build: + runs-on: ubuntu-latest + + # setup a npm mirror server so multiple npm installs can share fetches + # services: + # npm-mirror: + # image: verdaccio/verdaccio:5 + # ports: + # - 4873:4873 + + strategy: + matrix: + architecture: + - "amd64" + - "arm64" + - "ppc64le" + - "s390x" + + steps: + - name: Maximize disk space + shell: bash + run: | + echo "Space before clearing:" + df . -h + sudo rm -rf /usr/share/dotnet + sudo rm -rf /opt/ghc + sudo rm -rf "/usr/local/share/boost" + sudo rm -rf "$AGENT_TOOLSDIRECTORY" + echo "Space after clearing:" + df . -h + + - name: Checkout + uses: actions/checkout@main + + - name: Configure QEMU + uses: docker/setup-qemu-action@master + with: + platforms: all + + - name: Image meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.registry }}/${{ env.image_name }} + tags: | + type=schedule + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=ref,event=branch + type=ref,event=pr + type=sha + + - name: Run pre build command + shell: bash + run: "${{ env.pre_build_cmd }}" + if: "${{ env.pre_build_cmd != '' }}" + + - name: Build Image + id: build + uses: redhat-actions/buildah-build@main + with: + image: ${{ env.image_name }} + tags: ${{ env.tag }}-${{ matrix.architecture }} + extra-args: "--no-cache --rm ${{ env.extra-args }}" + archs: ${{ matrix.architecture }} + labels: ${{ steps.meta.outputs.labels }} + containerfiles: ${{ env.containerfile }} + + - name: Push To Quay + uses: redhat-actions/push-to-registry@main + id: push + with: + image: ${{ steps.build.outputs.image }} + tags: ${{ env.tag }}-${{ matrix.architecture }} + username: ${{ secrets.QUAY_PUBLISH_ROBOT }} + password: ${{ secrets.QUAY_PUBLISH_TOKEN }} + registry: ${{ env.registry }} + + manifest: + needs: build + runs-on: ubuntu-latest + steps: + - name: Create manifest + shell: bash + run: | + podman manifest create "${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}" + for arch in $(echo '${{ env.architectures }}' | jq -r '.[]'); do + podman manifest add \ + "${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}" \ + "${{ env.registry }}/${{ env.image_name }}:${{ env.tag }}-${arch}" + done + + - name: Push To Quay + uses: redhat-actions/push-to-registry@main + id: push + with: + image: ${{ env.image_name }} + tags: ${{ env.tag }} + username: ${{ secrets.QUAY_PUBLISH_ROBOT }} + password: ${{ secrets.QUAY_PUBLISH_TOKEN }} + registry: ${{ env.registry }} diff --git a/.github/workflows/image-build.yaml b/.github/workflows/image-build.yaml index 4db993a89..379fa13d8 100644 --- a/.github/workflows/image-build.yaml +++ b/.github/workflows/image-build.yaml @@ -17,10 +17,10 @@ jobs: image-build: uses: konveyor/release-tools/.github/workflows/build-push-images.yaml@main with: - registry: "quay.io/konveyor" + registry: "quay.io/sdickers" image_name: "tackle2-ui" containerfile: "./Dockerfile" - architectures: '[ "amd64", "arm64", "ppc64le", "s390x" ]' + architectures: '[ "amd64", "arm64" ]' # 2023-03-19: currently needed for npm@10 extra-args: "--ulimit nofile=4096:4096" secrets: diff --git a/client/package.json b/client/package.json index de932e687..3433d79d4 100644 --- a/client/package.json +++ b/client/package.json @@ -29,7 +29,7 @@ "@patternfly/react-charts": "7.2.2", "@patternfly/react-code-editor": "5.2.3", "@patternfly/react-core": "5.2.3", - "@patternfly/react-table": "5.2.4", + "@patternfly/react-table": "5.3.0", "@patternfly/react-tokens": "5.2.1", "@react-keycloak/web": "^3.4.0", "@tanstack/react-query": "^4.22.0", diff --git a/package-lock.json b/package-lock.json index 997e0ab6d..3206108b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "@patternfly/react-charts": "7.2.2", "@patternfly/react-code-editor": "5.2.3", "@patternfly/react-core": "5.2.3", - "@patternfly/react-table": "5.2.4", + "@patternfly/react-table": "5.3.0", "@patternfly/react-tokens": "5.2.1", "@react-keycloak/web": "^3.4.0", "@tanstack/react-query": "^4.22.0", @@ -1720,28 +1720,28 @@ } }, "node_modules/@patternfly/react-icons": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.2.1.tgz", - "integrity": "sha512-aeJ0X+U2NDe8UmI5eQiT0iuR/wmUq97UkDtx3HoZcpRb9T6eUBfysllxjRqHS8rOOspdU8OWq+CUhQ/E2ZDibg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.3.0.tgz", + "integrity": "sha512-oBdaK4Gz7yivNE7jQg46sPzfZakg7oxo5aSMLc0N6haOmDEegiTurNex+h+/z0oBPqzZC+cIQRaBeXEgXGwc9Q==", "peerDependencies": { "react": "^17 || ^18", "react-dom": "^17 || ^18" } }, "node_modules/@patternfly/react-styles": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.2.1.tgz", - "integrity": "sha512-GT96hzI1QenBhq6Pfc51kxnj9aVLjL1zSLukKZXcYVe0HPOy0BFm90bT1Fo4e/z7V9cDYw4SqSX1XLc3O4jsTw==" + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.3.0.tgz", + "integrity": "sha512-/EdkURW+v7Rzw/CiEqL+NfGtLvLMGIwOEyDhvlMDbRip2usGw4HLZv3Bep0cJe29zOeY27cDVZDM1HfyXLebtw==" }, "node_modules/@patternfly/react-table": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.2.4.tgz", - "integrity": "sha512-WCt4I6XYKRHXcasDqcOX70ctkgPVBAvlOv67KhaZsedxUU+B2NT1kiI7Jr7tD4SrR+jQs0MCF/bbRk1QM+rBqg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.3.0.tgz", + "integrity": "sha512-DuylKyUA/D6Jzk7t6VU8SzbABjaKra2+O4G99Zt7EyEuhcDP3dfb+AcL5yg7CLx4/v2fexzum+dLGZVMvqzSUQ==", "dependencies": { - "@patternfly/react-core": "^5.2.3", - "@patternfly/react-icons": "^5.2.1", - "@patternfly/react-styles": "^5.2.1", - "@patternfly/react-tokens": "^5.2.1", + "@patternfly/react-core": "^5.3.0", + "@patternfly/react-icons": "^5.3.0", + "@patternfly/react-styles": "^5.3.0", + "@patternfly/react-tokens": "^5.3.0", "lodash": "^4.17.19", "tslib": "^2.5.0" }, @@ -1750,6 +1750,28 @@ "react-dom": "^17 || ^18" } }, + "node_modules/@patternfly/react-table/node_modules/@patternfly/react-core": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.3.0.tgz", + "integrity": "sha512-nMf8yrul3u+4+ch7IMsE+/3Rzmor8/yEUk8zzD9bYGRxjwniu1RqCF8NdgPvMw2C7Hz7xtpwsgXDfG4n8qd12g==", + "dependencies": { + "@patternfly/react-icons": "^5.3.0", + "@patternfly/react-styles": "^5.3.0", + "@patternfly/react-tokens": "^5.3.0", + "focus-trap": "7.5.2", + "react-dropzone": "^14.2.3", + "tslib": "^2.5.0" + }, + "peerDependencies": { + "react": "^17 || ^18", + "react-dom": "^17 || ^18" + } + }, + "node_modules/@patternfly/react-table/node_modules/@patternfly/react-tokens": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.3.0.tgz", + "integrity": "sha512-24ZY5hgwt11InW3XtINM5p9Fo1hDiVor6Q4uphPZh8Mt89AsZZw1UweTaGg54I0Ah2Wzv6rkQy51LX7tZtIwjQ==" + }, "node_modules/@patternfly/react-tokens": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.2.1.tgz",