Add Docker CI/CD.

This commit is contained in:
Aterfax 2024-03-25 01:58:51 +00:00
parent 7c53cfb939
commit 5a769bea8e
No known key found for this signature in database
GPG Key ID: 51E7ED3290C121FE
3 changed files with 104 additions and 0 deletions

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "docker" # See documentation for possible values
directory: "/docker" # Location of package manifests
schedule:
interval: "daily"

57
.github/workflows/docker-publish.yml vendored Normal file
View File

@ -0,0 +1,57 @@
name: Build and Publish Docker Image
on:
push:
branches: [main]
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '0 9 * * 6'
workflow_dispatch:
jobs:
build-and-push-docker-image:
name: Build Docker image and push to repositories
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Force permissions fix.
run: sudo apt-get update && sudo apt-get install dos2unix -y && cd docker && bash dos2unix.sh
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to Github Packages
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Get current date
id: date
run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Build image and push to Docker Hub and GitHub Container Registry
uses: docker/build-push-action@v5
with:
context: ./docker
push: true
tags: |
aterfax/pbs-client:latest
ghcr.io/aterfax/pbs-client:latest
aterfax/pbs-client:${{ env.DATE }}
ghcr.io/aterfax/pbs-client:${{ env.DATE }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}

36
.github/workflows/docker-test.yml vendored Normal file
View File

@ -0,0 +1,36 @@
name: Build Docker Image
on:
# run it during pull request
pull_request:
workflow_dispatch:
jobs:
# define job to build and publish docker image
build-docker-image:
name: Build Docker image only
# run only when code is compiling and tests are passing
runs-on: ubuntu-latest
# steps to perform in job
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Force permissions fix.
run: sudo apt-get update && sudo apt-get install dos2unix -y && cd docker && bash dos2unix.sh
# setup Docker build action
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Build image only
uses: docker/build-push-action@v5
with:
context: ./docker
push: false
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}