diff --git a/.github/workflows/pushimage-next.yml b/.github/workflows/pushimage-next.yml new file mode 100644 index 00000000..31129022 --- /dev/null +++ b/.github/workflows/pushimage-next.yml @@ -0,0 +1,80 @@ +# Copyright 2022 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Next Dockerimage + +on: + push: + branches: [main] + repository_dispatch: + types: [build] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.number || github.ref }} + cancel-in-progress: true + +jobs: + registry-viewer-build: + name: Registry Viewer Build + runs-on: ubuntu-latest + steps: + - name: Check out devfile web source code + uses: actions/checkout@v3 + - name: Login to Quay + uses: docker/login-action@v1 + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + - name: Build the registry viewer image + run: bash ./scripts/build_viewer.sh + - name: Push the registry viewer image + run: bash ./scripts/push.sh registry-viewer:latest quay.io/devfile/registry-viewer:next + dispatch: + needs: registry-viewer-build + strategy: + matrix: + repo: ['devfile/registry'] + runs-on: ubuntu-latest + steps: + - name: Get the repository name and commit sha + id: get_commit_info + run: | + # Check if repository name is not set in the client payload + # If it's not set, the triggered commit came from this repo (devfile-web) + # If it is set, the triggered commit came from another source + if [ -z ${{ github.event.client_payload.repo }} ]; + then + echo ::set-output name=repo::$(echo ${{ github.event.repository.name }}) + else + echo ::set-output name=repo::$(echo ${{ github.event.client_payload.repo }}) + fi + + # Check if commit sha is not set in the client payload + # If it's not set, the triggered commit came from this repo (devfile-web) + # If it is set, the triggered commit came from another source + + if [ -z ${{ github.event.client_payload.sha }} ]; + then + echo ::set-output name=sha::$(echo ${{ github.sha }}) + else + echo ::set-output name=sha::$(echo ${{ github.event.client_payload.sha }}) + fi + - name: Repository dispatch + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.REPO_ACCESS_TOKEN }} + repository: ${{ matrix.repo }} + event-type: build + client-payload: '{"repo": "${{ steps.get_commit_info.outputs.REPO }}", "sha": "${{ steps.get_commit_info.outputs.SHA }}"}' diff --git a/Dockerfile b/Dockerfile index 0fd4b7db..4b0f5635 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,16 @@ +# Copyright 2022 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # Install dependencies only when needed FROM registry.access.redhat.com/ubi8/nodejs-16-minimal AS deps diff --git a/scripts/build_viewer.sh b/scripts/build_viewer.sh new file mode 100644 index 00000000..41c3d087 --- /dev/null +++ b/scripts/build_viewer.sh @@ -0,0 +1,21 @@ +# Copyright 2022 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!/usr/bin/env bash + +docker build -t registry-viewer . \ + --build-arg PROJECT_NAME=registry-viewer \ + --build-arg SITE_URL=${SITE_URL:-"https://registry.stage.devfile.io/viewer"} \ + --build-arg NEXT_PUBLIC_BASE_PATH=${NEXT_PUBLIC_BASE_PATH:-"/viewer"} \ + --build-arg NEXT_PUBLIC_ANALYTICS_WRITE_KEY=${NEXT_PUBLIC_ANALYTICS_WRITE_KEY:-""} diff --git a/scripts/docs.sh b/scripts/docs.sh index 6e53d716..74083ecb 100755 --- a/scripts/docs.sh +++ b/scripts/docs.sh @@ -1,3 +1,17 @@ +# Copyright 2022 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + #!/usr/bin/env bash chmod +x ./dist/libs/docs/src/scripts/index.js diff --git a/scripts/push.sh b/scripts/push.sh new file mode 100644 index 00000000..b3a764ef --- /dev/null +++ b/scripts/push.sh @@ -0,0 +1,20 @@ +# Copyright 2022 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +#!/usr/bin/env bash + +BASE_TAG=$1 +IMAGE_TAG=$2 +docker tag $BASE_TAG $IMAGE_TAG +docker push $IMAGE_TAG