docs: add early access dev container docs #6025
Workflow file for this run
This file contains hidden or 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: pr-cleanup | |
on: | |
pull_request: | |
types: closed | |
workflow_dispatch: | |
inputs: | |
pr_number: | |
description: "PR number" | |
required: true | |
permissions: | |
contents: read | |
jobs: | |
cleanup: | |
runs-on: "ubuntu-latest" | |
permissions: | |
# Necessary to delete docker images from ghcr.io. | |
packages: write | |
steps: | |
- name: Harden Runner | |
uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 | |
with: | |
egress-policy: audit | |
- name: Get PR number | |
id: pr_number | |
run: | | |
if [ -n "${{ github.event.pull_request.number }}" ]; then | |
echo "PR_NUMBER=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT | |
else | |
echo "PR_NUMBER=${{ github.event.inputs.pr_number }}" >> $GITHUB_OUTPUT | |
fi | |
- name: Delete image | |
continue-on-error: true | |
uses: bots-house/ghcr-delete-image-action@3827559c68cb4dcdf54d813ea9853be6d468d3a4 # v1.1.0 | |
with: | |
owner: coder | |
name: coder-preview | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag: pr${{ steps.pr_number.outputs.PR_NUMBER }} | |
- name: Set up kubeconfig | |
run: | | |
set -euo pipefail | |
mkdir -p ~/.kube | |
echo "${{ secrets.PR_DEPLOYMENTS_KUBECONFIG }}" > ~/.kube/config | |
export KUBECONFIG=~/.kube/config | |
- name: Delete helm release | |
run: | | |
set -euo pipefail | |
helm delete --namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "helm release not found" | |
- name: "Remove PR namespace" | |
run: | | |
kubectl delete namespace "pr${{ steps.pr_number.outputs.PR_NUMBER }}" || echo "namespace not found" | |
- name: "Remove DNS records" | |
run: | | |
set -euo pipefail | |
# Get identifier for the record | |
record_id=$(curl -X GET "https://api.cloudflare.com/client/v4/zones/${{ secrets.PR_DEPLOYMENTS_ZONE_ID }}/dns_records?name=%2A.pr${{ steps.pr_number.outputs.PR_NUMBER }}.${{ secrets.PR_DEPLOYMENTS_DOMAIN }}" \ | |
-H "Authorization: Bearer ${{ secrets.PR_DEPLOYMENTS_CLOUDFLARE_API_TOKEN }}" \ | |
-H "Content-Type:application/json" | jq -r '.result[0].id') || echo "DNS record not found" | |
echo "::add-mask::$record_id" | |
# Delete the record | |
( | |
curl -X DELETE "https://api.cloudflare.com/client/v4/zones/${{ secrets.PR_DEPLOYMENTS_ZONE_ID }}/dns_records/$record_id" \ | |
-H "Authorization: Bearer ${{ secrets.PR_DEPLOYMENTS_CLOUDFLARE_API_TOKEN }}" \ | |
-H "Content-Type:application/json" | jq -r '.success' | |
) || echo "DNS record not found" | |
- name: "Delete certificate" | |
if: ${{ github.event.pull_request.merged == true }} | |
run: | | |
set -euxo pipefail | |
kubectl delete certificate "pr${{ steps.pr_number.outputs.PR_NUMBER }}-tls" -n pr-deployment-certs || echo "certificate not found" |