Update README.md #28
Workflow file for this run
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
name: k8s version testing e2e | |
on: | |
pull_request: | |
branches: [ main ] | |
types: [opened,reopened,synchronize,closed] | |
permissions: | |
contents: read | |
pull-requests: write | |
id-token: write | |
jobs: | |
build-image: | |
name: Build and Push `nodejs` Image | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed' }} | |
outputs: | |
tags: ${{ steps.meta.outputs.tags }} | |
uuid: ${{ env.UUID_IMAGE }} | |
steps: | |
- name: Checkout git repo | |
uses: actions/checkout@v3 | |
- name: Generate UUID image name | |
id: uuid | |
run: echo "UUID_IMAGE=$(uuidgen)" >> $GITHUB_ENV | |
- name: Docker metadata | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
# An anonymous, emphemeral registry built on ttl.sh | |
images: registry.uffizzi.com/${{ env.UUID_IMAGE }} | |
tags: type=raw,value=48h | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build and Push Image to Uffizzi Ephemeral Registry | |
uses: docker/build-push-action@v3 | |
with: | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
context: ./src | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
uffizzi-cluster: | |
name: Kustomize apply to k8s clusters of multiple versions | |
needs: | |
- build-image | |
if: ${{ github.event_name == 'pull_request' && github.event.action != 'closed' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# Identify comment to be updated | |
- name: Find comment for Ephemeral Environment | |
uses: peter-evans/find-comment@v2 | |
id: find-comment | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: pr-${{ github.event.pull_request.number }}-1276 | |
direction: last | |
# Create/Update comment with action deployment status | |
- name: Create or Update Comment with Deployment Notification | |
id: notification | |
uses: peter-evans/create-or-update-comment@v2 | |
with: | |
comment-id: ${{ steps.find-comment.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
## Uffizzi Ephemeral Environment - Virtual Cluster | |
:cloud: deploying ... | |
:gear: Updating now by workflow run [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}). | |
Cluster names will be `pr-${{ github.event.pull_request.number }}-1276` and `pr-${{ github.event.pull_request.number }}-1282`. | |
Download the Uffizzi CLI to interact with the upcoming virtual cluster | |
https://docs.uffizzi.com/install | |
edit-mode: replace | |
- name: Create and connect to vcluster | |
uses: UffizziCloud/cluster-action@main | |
with: | |
cluster-name: pr-${{ github.event.pull_request.number }}-1276 | |
server: https://app.uffizzi.com | |
k8s-version: 1.27 | |
kubeconfig: kubeconfig-1276 | |
- name: Create and connect to vcluster | |
uses: UffizziCloud/cluster-action@main | |
with: | |
cluster-name: pr-${{ github.event.pull_request.number }}-1282 | |
server: https://app.uffizzi.com | |
k8s-version: 1.28 | |
kubeconfig: kubeconfig-1282 | |
- name: Apply Kustomize to test the new image | |
id: prev | |
run: | | |
if [[ ${RUNNER_DEBUG} == 1 ]]; then | |
pwd | |
ls -la | |
fi | |
( | |
cp ./kubeconfig-1276 ./kubeconfig-1282 ./.github/k8s | |
cd .github/k8s | |
# Change the image name to those just built and pushed. | |
kustomize edit set image uffizzi/hello-world-k8s=${{ needs.build-image.outputs.tags }} | |
# Apply kustomized manifests to virtual cluster. | |
kubectl apply --kustomize . --kubeconfig ./kubeconfig-1276 | |
kubectl apply --kustomize . --kubeconfig ./kubeconfig-1282 | |
) | |
# Allow uffizzi to sync the resources | |
sleep 5 | |
# Get the hostnames assigned by uffizzi | |
export WEB_HOST_1=$(kubectl get ingress web --kubeconfig ./kubeconfig-1276 -o json | jq '.spec.rules[0].host' | tr -d '"') | |
export WEB_HOST_2=$(kubectl get ingress web --kubeconfig ./kubeconfig-1282 -o json | jq '.spec.rules[0].host' | tr -d '"') | |
if [[ ${RUNNER_DEBUG} == 1 ]]; then | |
kubectl get all --kubeconfig ./kubeconfig-1276 | |
kubectl get all --kubeconfig ./kubeconfig-1282 | |
fi | |
echo "web_url_1=${WEB_HOST_1}" >> $GITHUB_OUTPUT | |
echo "web_url_2=${WEB_HOST_2}" >> $GITHUB_OUTPUT | |
echo "Access the \`web\` endpoint deployed on k8s version 1.27.6 at [\`${WEB_HOST_1}\`](http://${WEB_HOST_1})" >> $GITHUB_STEP_SUMMARY | |
echo "Access the \`web\` endpoint deployed on k8s version 1.28.2 at [\`${WEB_HOST_2}\`](http://${WEB_HOST_2})" >> $GITHUB_STEP_SUMMARY | |
- name: Create or Update Comment with Deployment URL | |
uses: peter-evans/create-or-update-comment@v2 | |
with: | |
comment-id: ${{ steps.notification.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
## Uffizzi Ephemeral Environment - Virtual Cluster | |
E2E tests in progress on the `pr-${{ github.event.pull_request.number }}-1276` and | |
`pr-${{ github.event.pull_request.number }}-1282` virtual clusters. | |
edit-mode: replace | |
uffizzi-cluster-delete: | |
if: ${{ github.event_name == 'pull_request' && github.event.action == 'closed' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Delete Virtual Cluster | |
uses: UffizziCloud/cluster-action@main | |
with: | |
action: delete | |
cluster-name: pr-${{ github.event.pull_request.number }}-1276 | |
server: https://app.uffizzi.com | |
- name: Delete Virtual Cluster | |
uses: UffizziCloud/cluster-action@main | |
with: | |
action: delete | |
cluster-name: pr-${{ github.event.pull_request.number }}-1282 | |
server: https://app.uffizzi.com | |
# Identify comment to be updated | |
- name: Find comment for Ephemeral Environment 1 | |
uses: peter-evans/find-comment@v2 | |
id: find-comment-1 | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: pr-${{ github.event.pull_request.number }}-1276 | |
direction: last | |
# Identify comment to be updated | |
- name: Find comment for Ephemeral Environment 2 | |
uses: peter-evans/find-comment@v2 | |
id: find-comment-2 | |
with: | |
issue-number: ${{ github.event.pull_request.number }} | |
comment-author: "github-actions[bot]" | |
body-includes: pr-${{ github.event.pull_request.number }}-1282 | |
direction: last | |
- name: Update Comment with Deletion | |
uses: peter-evans/create-or-update-comment@v2 | |
with: | |
comment-id: ${{ steps.find-comment-1.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
Uffizzi Cluster `pr-${{ github.event.pull_request.number }}-1276` was deleted. | |
edit-mode: replace | |
- name: Update Comment with Deletion | |
uses: peter-evans/create-or-update-comment@v2 | |
with: | |
comment-id: ${{ steps.find-comment-2.outputs.comment-id }} | |
issue-number: ${{ github.event.pull_request.number }} | |
body: | | |
Uffizzi Cluster `pr-${{ github.event.pull_request.number }}-1282` was deleted. | |
edit-mode: replace |