Deploy with StackSpark
This workflow deploys a Docker stack file to a server. The server needs to be running StackSpark.
Stack file
.github/workflows/deploy/stack.yml
version: '3.8'
services:
web:
image: ghcr.io/connorlanigan/notes:${IMAGE_TAG}
Workflow file
.github/workflows/deploy.yml
jobs:
deploy:
runs-on: ubuntu-latest
name: 'Deploy stack'
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Replace variables in stack file
env:
IMAGE_TAG: git-${{ steps.vars.outputs.sha_short }}
run: >
sed -e "s/\${IMAGE_TAG}/$IMAGE_TAG/" \
# -e "s/\${variable}/value/" \
-i .github/workflows/deploy/stack.yml
cat .github/workflows/deploy/stack.yml
- name: Trigger deployment
env:
API_KEY: ${{ secrets.StackSparkApiKey }}
STACKSPARK_HOST: ${{ secrets.StackSparkHost }}
STACK_NAME: notes
run: >
curl --fail -H "X-API-Key: $API_KEY" --data-binary "@.github/workflows/deploy/stack.yml" https://$STACKSPARK_HOST/deploy?stackName=$STACK_NAME