Skip to content

Deploy

Deploy #8

Workflow file for this run

name: Deploy
on:
push:
branches: [ main ]
workflow_dispatch:
env:
NOMAD_VERSION: 1.7.7
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Git checkout
uses: actions/checkout@v4
- name: Set environment variables
run: |
cat >> "$GITHUB_ENV" <<EOF
latest=ghcr.io/${{ github.repository }}:latest
current=ghcr.io/${{ github.repository }}:$(git rev-parse --short ${{ github.sha }})
EOF
- name: Download Nomad
run: |
curl -LO https://releases.hashicorp.com/nomad/${{ env.NOMAD_VERSION }}/nomad_${{ env.NOMAD_VERSION }}_linux_amd64.zip
unzip -d /usr/local/bin nomad_${{ env.NOMAD_VERSION }}_linux_amd64.zip
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to ghcr.io
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: ${{ env.latest }},${{ env.current }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy to nomad
env:
NOMAD_ADDR: ${{ vars.NOMAD_ADDR }}
NOMAD_CACERT_CONTENTS: ${{ vars.NOMAD_CACERT }}
NOMAD_CACERT: ./nomad_cacert.pem
NOMAD_TOKEN: ${{ secrets.NOMAD_TOKEN }}
run: |
echo "$NOMAD_CACERT_CONTENTS" > "$NOMAD_CACERT"
nomad run -var=image_tag=${{ env.current }} job.nomad.hcl