test: testing ip forward feature #61
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: CI | |
on: | |
push: | |
branches-ignore: | |
- 'main' | |
paths: | |
- 'assets/**' | |
- 'generators/**' | |
- 'build.ts' | |
jobs: | |
ci: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: 'Install pnpm' | |
uses: pnpm/action-setup@129abb77bf5884e578fcaf1f37628e41622cc371 | |
with: | |
version: 8 | |
- name: Install node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.node-version' | |
- name: Install dependencies | |
run: pnpm install | |
- name: Extract Branch Name | |
id: extract-branch | |
run: | | |
echo SUBDOMAIN=$(echo ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} | perl -pe 's/[^a-zA-Z0-9]+/-/g and s/-+$//g' | tr '[:upper:]' '[:lower:]') >> $GITHUB_OUTPUT | |
- name: Check If DNS Record Exists | |
id: cloudflare-dns-check | |
uses: fjogeleit/http-request-action@v1 | |
with: | |
url: 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE_ID }}/dns_records?name=${{steps.extract-branch.outputs.SUBDOMAIN}}.${{secrets.FPJS_CI_DOMAIN}}' | |
method: 'GET' | |
customHeaders: '{"Authorization": "Bearer ${{ secrets.CF_AUTH_TOKEN }}"}' | |
- name: Create Cloudflare DNS Record | |
if: ${{ fromJson(steps.cloudflare-dns-check.outputs.response).result_info.total_count < 1 }} | |
uses: fjogeleit/http-request-action@v1 | |
with: | |
url: 'https://api.cloudflare.com/client/v4/zones/${{ secrets.CF_ZONE_ID }}/dns_records' | |
method: 'POST' | |
customHeaders: '{"Authorization": "Bearer ${{ secrets.CF_AUTH_TOKEN }}"}' | |
data: '{"content": "${{steps.extract-branch.outputs.SUBDOMAIN}}.${{secrets.FPJS_CI_DOMAIN}}.edgesuite.net", "name": "${{steps.extract-branch.outputs.SUBDOMAIN}}.${{secrets.FPJS_CI_DOMAIN}}", "proxied": false, "type": "CNAME", "comment": "Akamai CI run for ${{steps.extract-branch.outputs.SUBDOMAIN}}", "ttl": 3600, "tags": ["owner:akamai-integration-ci"]}' | |
- name: Check Akamai Property can be created | |
id: check-akamai-property | |
continue-on-error: true | |
env: | |
SUBDOMAIN: '${{steps.extract-branch.outputs.SUBDOMAIN}}' | |
AK_HOST: '${{secrets.AK_HOST}}' | |
AK_CLIENT_TOKEN: '${{secrets.AK_CLIENT_TOKEN}}' | |
AK_CLIENT_SECRET: '${{secrets.AK_CLIENT_SECRET}}' | |
AK_ACCESS_TOKEN: '${{secrets.AK_ACCESS_TOKEN}}' | |
AK_GROUP_ID: '${{secrets.AK_GROUP_ID}}' | |
AK_CONTRACT_ID: '${{secrets.AK_CONTRACT_ID}}' | |
FPJS_CI_DOMAIN: '${{secrets.FPJS_CI_DOMAIN}}' | |
run: pnpm ts-node scripts/checkPropertyCanBeCreated.ts | |
- name: Create Akamai Property | |
if: steps.check-akamai-property.outcome == 'success' | |
id: create-akamai-property | |
env: | |
SUBDOMAIN: '${{steps.extract-branch.outputs.SUBDOMAIN}}' | |
AK_HOST: '${{secrets.AK_HOST}}' | |
AK_CLIENT_TOKEN: '${{secrets.AK_CLIENT_TOKEN}}' | |
AK_CLIENT_SECRET: '${{secrets.AK_CLIENT_SECRET}}' | |
AK_ACCESS_TOKEN: '${{secrets.AK_ACCESS_TOKEN}}' | |
AK_GROUP_ID: '${{secrets.AK_GROUP_ID}}' | |
AK_CONTRACT_ID: '${{secrets.AK_CONTRACT_ID}}' | |
FPJS_CI_DOMAIN: '${{secrets.FPJS_CI_DOMAIN}}' | |
run: pnpm ts-node scripts/createProperty.ts | |
- name: Build Patch Body | |
run: pnpm build --type patchBody --proxy-secret ${{secrets.FPJS_PROXY_SECRET}} --integration-path worker --agent-path pxdownload --result-path pxresult | |
- name: Deploy Akamai Rules | |
id: deploy-rules | |
env: | |
SUBDOMAIN: '${{steps.extract-branch.outputs.SUBDOMAIN}}' | |
AK_HOST: '${{secrets.AK_HOST}}' | |
AK_CLIENT_TOKEN: '${{secrets.AK_CLIENT_TOKEN}}' | |
AK_CLIENT_SECRET: '${{secrets.AK_CLIENT_SECRET}}' | |
AK_ACCESS_TOKEN: '${{secrets.AK_ACCESS_TOKEN}}' | |
AK_GROUP_ID: '${{secrets.AK_GROUP_ID}}' | |
AK_CONTRACT_ID: '${{secrets.AK_CONTRACT_ID}}' | |
FPJS_CI_DOMAIN: '${{secrets.FPJS_CI_DOMAIN}}' | |
TEST_EDGE_WORKER_ID: ${{secrets.TEST_EDGE_WORKER_ID}} | |
NOTIFY_EMAIL_ADDRESS: ${{secrets.NOTIFY_EMAIL_ADDRESS}} | |
run: pnpm ts-node scripts/deployRules.ts |