Skip to content

Publish dev Docker image #69

Publish dev Docker image

Publish dev Docker image #69

Workflow file for this run

name: Publish dev Docker image
on:
workflow_dispatch:
jobs:
build-and-push-image:
environment: development
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- context: client
image: ghcr.io/neilenns/vatsim-plan-verifier-client
- context: server
image: ghcr.io/neilenns/vatsim-plan-verifier-server
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Get the short commit hash
shell: bash
run: |
echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV"
- name: Generate Docker metadata
id: meta
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
${{ matrix.image }}
labels: |
org.opencontainers.image.title=Vatsim plan verifier ${{ matrix.context }}
org.opencontainers.image.description=${{ matrix.context }} for Vatsim plan verifier
org.opencontainers.image.source=https://github.com/neilenns/react-vatsim-plan-verifier
org.opencontainers.image.licenses=MIT
# generate Docker tags based on the following events/attributes
tags: |
${{ env.sha_short }}
dev
- name: Build and push image
uses: docker/build-push-action@v5
with:
context: ${{ matrix.context }}
file: ${{ matrix.context }}/Docker/Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=neilenns/vatsim-plan-verifier-${{ matrix.context }}:dev
cache-to: type=inline
build-args: |
VERSION="dev (${{ env.sha_short}})"
# deploy:
# runs-on: ubuntu-latest
# needs: build-and-push-image
# environment: development
# steps:
# # -L makes curl follow the redirect from cloudflare
# # -w captures the HTTP code
# # -s is silent so no progress bar shows
# # -o /dev/null sends the response to null so it doesn't contaminate the response code
# # -H adds the two Cloudflare headers to allow webhook access
# - name: Deploy to Portainer
# run: |
# status_code=$(curl -v -X POST \
# -L \
# -w "%{http_code}" \
# -s \
# -o /dev/null \
# -H "CF-Access-Client-Id: ${{ secrets.CF_ACCESS_CLIENT_ID }}" \
# -H "CF-Access-Client-Secret: ${{ secrets.CF_ACCESS_CLIENT_SECRET }}" \
# "${{ vars.PORTAINER_WEBHOOK_URL }}")
# echo "Status code received: $status_code"
# if [ $status_code -eq 204 ]; then
# echo "Deployment succeeded"
# else
# echo "Deployment failed"
# exit 1
# fi