Skip to content

t1

t1 #67

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
test-deploy:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Prepare a test file
run: |
mkdir -p build/deploy
echo -e "<html><head><title>Test</title></head><body><h1>Deploy $(date +'%s')</h1></body></html>" > build/deploy/index.html
echo -e "<html><head><title>Test</title></head><body><h1>Deploy $(date +'%s')</h1></body></html>" > build/deploy-$(date +"%s").html
- name: Deploy
uses: ./
with:
customer: quant
project: github-actions
token: ${{ secrets.QUANT_TOKEN }}
dir: build
test-skip:
runs-on: ubuntu-latest
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Prepare a test file
run: |
mkdir -p build/deploy
echo -e "<html><head><title>Test</title></head><body><h1>Deploy $(date +'%s')</h1></body></html>" > build/deploy/index.html
# Deploy the state.
- name: Deploy
uses: ./
with:
customer: quant
project: github-actions
token: ${{ secrets.QUANT_TOKEN }}
dir: build
skip-unpublish: true
skip-purge: true
force: true
chunk-size: 10
test-functions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Create test functions
- name: Prepare test functions
run: |
mkdir -p functions
# Create an auth function
cat > functions/auth.js << 'EOL'
export default async function auth(request) {
return { authenticated: true };
}
EOL
# Create a filter function
cat > functions/filter.js << 'EOL'
export default async function filter(request) {
return request;
}
EOL
# Create an edge function
cat > functions/edge.js << 'EOL'
export default async function edge(request) {
return new Response("Hello from edge function!");
}
EOL
# Create functions config file
cat > functions/config.json << EOL
[
{
"type": "auth",
"path": "./functions/auth.js",
"description": "Test auth function",
"uuid": "11111111-1111-4111-a111-111111111111"
},
{
"type": "filter",
"path": "./functions/filter.js",
"description": "Test filter function",
"uuid": "22222222-2222-4222-a222-222222222222"
}
]
EOL
# Test direct JSON configuration
- name: Test edge function deployment (direct JSON)
uses: ./
with:
customer: quant
project: github-actions
token: ${{ secrets.QUANT_TOKEN }}
dir: build
functions: |
[
{
"type": "edge",
"path": "./functions/edge.js",
"description": "Test edge function",
"uuid": "33333333-3333-4333-a333-333333333333"
}
]
# Test file-based configuration
- name: Test function deployment (config file)
uses: ./
with:
customer: quant
project: github-actions
token: ${{ secrets.QUANT_TOKEN }}
dir: build
functions-file: "./functions/config.json"
# Test individual function deployment
- name: Test individual function deployment
uses: ./
with:
customer: quant
project: github-actions
token: ${{ secrets.QUANT_TOKEN }}
dir: build
auth-function: "./functions/auth.js"
auth-description: "Test individual auth function"
auth-uuid: "44444444-4444-4444-a444-444444444444"