Skip to content

az-swa-deploy

az-swa-deploy #147

Workflow file for this run

name: az-swa-deploy
on:
workflow_dispatch:
schedule:
- cron: "0 4 * * *"
permissions:
id-token: write
contents: read
env:
SSHSTATS_BACKEND: "https://sshstats-be-fn.azurewebsites.net/"
SSHSTATS_NUXT_PUBLIC_BASE_URL: "http://localhost:65000/fe/data"
jobs:
generate-website:
runs-on: ubuntu-22.04
services:
data-server:
image: nginx:1.27.1
ports:
- 65000:80
volumes:
- ${{ github.workspace }}:/usr/share/nginx/html # TODO: You need to bind mount to an existing folder ?
steps:
- name: checkout frontend repo
uses: actions/checkout@v4
- name: unpack nodenames
run: |
SSHSTATS_NODENAMES=$(jq -r '.[]' fe/assets/nodenames.json | tr '\n' ' ')
echo "SSHSTATS_NODENAMES=$SSHSTATS_NODENAMES" >> "$GITHUB_ENV"
- name: download attempts data
run: |
for nodename in $SSHSTATS_NODENAMES; do
echo "Downloading $nodename.json"
sleep .5
curl -v \
-H "${{ secrets.SSHSTATS_API_AUTH_KEY }}: ${{ secrets.SSHSTATS_API_AUTH_VALUE }}" \
--output-dir fe/data/logins \
-o "$nodename.json" \
--fail-with-body \
"${{ env.SSHSTATS_BACKEND }}/stats/$nodename"
done
- name: store attempts data
uses: actions/upload-artifact@v4
with:
name: attempts-data
path: |
fe/data/logins/*.json
- name: configure nuxt
run: |
echo "NUXT_PUBLIC_BASE_URL=${{ env.SSHSTATS_NUXT_PUBLIC_BASE_URL }}" >> fe/.env
- name: setup node
uses: actions/setup-node@v4
with:
node-version: "22.6.0"
- name: npm ci
working-directory: ./fe
run: |
npm ci
- name: nuxt generate
working-directory: ./fe
run: |
npm run generate
- name: az deploy
uses: Azure/static-web-apps-deploy@v1
with:
skip_app_build: true
skip_api_build: true
action: "upload"
azure_static_web_apps_api_token: ${{ secrets.AZURE_DEPLOYMENT_TOKEN }}
app_location: ./fe/.output/public