Publish Image PR check #873
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Copyright (c) 2021 Red Hat, Inc. | |
# This program and the accompanying materials are made | |
# available under the terms of the Eclipse Public License 2.0 | |
# which is available at https://www.eclipse.org/legal/epl-2.0/ | |
# | |
# SPDX-License-Identifier: EPL-2.0 | |
# | |
name: Publish Image PR check | |
on: | |
workflow_run: | |
workflows: ["Pull Request Check"] | |
types: | |
- completed | |
jobs: | |
publish-image-pull-request: | |
name: publish image from the pull request | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: PR number | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: ${{ github.event.workflow_run.workflow_id }} | |
name: pull-request-number | |
- name: Grab pull request number | |
run: | | |
pr_number=$(cat "PR_NUMBER") | |
if ! [[ "$pr_number" =~ ^[0-9]+$ ]]; then | |
echo "pr number invalid" | |
exit 1 | |
fi | |
echo "PR_NUMBER=$pr_number" >> $GITHUB_ENV | |
- name: PR sha | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: ${{ github.event.workflow_run.workflow_id }} | |
name: pull-request-sha | |
- name: Grab pull request sha1 | |
run: | | |
pr_sha=$(cat "PR_SHA") | |
echo "PR_SHA=$pr_sha" >> $GITHUB_ENV | |
- name: Login to Quay.io | |
uses: docker/login-action@v2 | |
with: | |
registry: quay.io | |
username: ${{ secrets.QUAY_PULL_REQUESTS_USERNAME }} | |
password: ${{ secrets.QUAY_PULL_REQUESTS_PASSWORD }} | |
- name: Increase Swap Space # implemented for the Linux system only | |
if: runner.os == 'Linux' | |
shell: bash | |
run: | | |
echo "Current swap area:" | |
sudo swapon --show | |
export SWAP_SIZE=7 | |
export SWAP_FILE_PATH=$(swapon --show=NAME | tail -n 1) | |
sudo swapoff $SWAP_FILE_PATH | |
sudo rm $SWAP_FILE_PATH | |
sudo fallocate -l ${SWAP_SIZE}G $SWAP_FILE_PATH | |
sudo chmod 600 $SWAP_FILE_PATH | |
sudo mkswap $SWAP_FILE_PATH | |
sudo swapon $SWAP_FILE_PATH | |
echo "Updated swap area:" | |
sudo swapon --show | |
- name: Download assembly image | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: ${{ github.event.workflow_run.workflow_id }} | |
name: action_image_artifact_assembly-pr | |
path: assembly-image/ | |
- name: Load docker image | |
run: | | |
ls -la assembly-image/ | |
docker load -i assembly-image/assembly-pr | |
- name: Docker Push | |
run: | | |
export IMAGE_NAME=quay.io/che-incubator-pull-requests/che-code:pr-${{env.PR_NUMBER}}-amd64 | |
docker tag assembly-pr ${IMAGE_NAME} | |
docker push ${IMAGE_NAME} | |
echo "IMAGE_NAME=${IMAGE_NAME}" >> $GITHUB_ENV | |
- name: Download dev image | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: ${{ github.event.workflow_run.workflow_id }} | |
name: dev-image | |
- name: Load dev Docker image | |
run: | | |
docker load -i dev-pr.tgz | |
- name: Docker Push | |
run: | | |
export DEV_IMAGE_NAME=quay.io/che-incubator-pull-requests/che-code-dev:pr-${{env.PR_NUMBER}}-dev-amd64 | |
docker tag dev-pr ${DEV_IMAGE_NAME} | |
docker push ${DEV_IMAGE_NAME} | |
echo "DEV_IMAGE_NAME=${DEV_IMAGE_NAME}" >> $GITHUB_ENV | |
- name: 'Comment PR' | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
const { repo: { owner, repo } } = context; | |
await github.rest.issues.createComment({ | |
issue_number: process.env.PR_NUMBER, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: `Pull Request images published ✨\nimage: ${process.env.IMAGE_NAME}\n Dev image: ${process.env.DEV_IMAGE_NAME}` | |
}) |