adds github pipeline shell script #47
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: publish-edgeworker | |
on: | |
push: | |
branches: | |
- main | |
- master | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
container: node:18 | |
steps: | |
- name: Get code | |
uses: actions/checkout@v3 | |
- name: Set up test runner | |
run: npm install | |
- name: Run tests | |
run: node --experimental-vm-modules node_modules/.bin/jest | |
deploy: | |
needs: test | |
runs-on: ubuntu-latest | |
container: akamai/edgeworkers:latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v3 | |
- name: Set up edgerc | |
run: echo -e "[default]\nhost=${{ secrets.akamai_host }}\nclient_token=${{ secrets.akamai_client_token }}\naccess_token=${{ secrets.akamai_access_token }}\nclient_secret=${{ secrets.akamai_client_secret }}" > ~/.edgerc | |
- name: Set up edgeky token file | |
run: sed -e 's/${EDGEKV_TOKEN}/${{ secrets.akamai_edgekv_token }}/g' ./edgekv_tokens.template.js > ./edgekv_tokens.js | |
- name: Build deployment tarball | |
run: tar cvzf tarball.tgz main.js bundle.json edgekv.js edgekv_tokens.js services | |
- name: Push EdgeWorker code | |
run: akamai --accountkey ${{ vars.ACCOUNT_KEY }} edgeworkers upload --bundle tarball.tgz ${{ vars.EW_ID }} | |
push-to-staging: | |
needs: deploy | |
runs-on: ubuntu-latest | |
container: akamai/edgeworkers:latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v3 | |
- name: Set up edgerc | |
run: echo -e "[default]\nhost=${{ secrets.akamai_host }}\nclient_token=${{ secrets.akamai_client_token }}\naccess_token=${{ secrets.akamai_access_token }}\nclient_secret=${{ secrets.akamai_client_secret }}" > ~/.edgerc | |
- name: Activate to staging | |
run: | | |
VERSION=$(grep "edgeworker-version" bundle.json | grep -Eo '[0-9\.]+') | |
akamai edgeworkers activate ${{ vars.EW_ID }} staging $VERSION --accountkey ${{ vars.ACCOUNT_KEY }} | |
push-to-production: | |
needs: push-to-staging | |
environment: production | |
runs-on: ubuntu-latest | |
container: akamai/edgeworkers:latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v3 | |
- name: Set up edgerc | |
run: echo -e "[default]\nhost=${{ secrets.akamai_host }}\nclient_token=${{ secrets.akamai_client_token }}\naccess_token=${{ secrets.akamai_access_token }}\nclient_secret=${{ secrets.akamai_client_secret }}" > ~/.edgerc | |
- name: Activate to production | |
run: | | |
VERSION=$(grep "edgeworker-version" bundle.json | grep -Eo '[0-9\.]+') | |
akamai --accountkey ${{ vars.ACCOUNT_KEY }} edgeworkers activate ${{ vars.EW_ID }} production $VERSION |