95 lines
2.2 KiB
YAML
95 lines
2.2 KiB
YAML
name: CI/CD
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "[0-9]+.[0-9]+.[0-9]+"
|
|
schedule:
|
|
- cron: "0 5 * * 0"
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
USER: loganmarchione
|
|
REPO: docker-webdav-nginx
|
|
|
|
jobs:
|
|
ubuntu_ci:
|
|
name: Build and test
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out the codebase
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set variables
|
|
run: |
|
|
VER=$(cat VERSION)
|
|
echo "VERSION=$VER" >> $GITHUB_ENV
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Build Docker Image
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
push: false
|
|
context: .
|
|
file: Dockerfile
|
|
load: true
|
|
tags: |
|
|
${{ env.USER }}/${{ env.REPO }}:${{ env.VERSION }}
|
|
${{ env.USER }}/${{ env.REPO }}:latest
|
|
|
|
- name: Test image
|
|
run: |
|
|
docker images
|
|
docker run --name test-container --detach --env WEBDAV_USER=user --env WEBDAV_PASS=password1 --volume 'webdav:/var/www/webdav' ${USER}/${REPO}:${VERSION}
|
|
docker ps -a
|
|
|
|
- name: Container scan
|
|
uses: azure/container-scan@v0
|
|
with:
|
|
image-name: ${{ env.USER }}/${{ env.REPO }}:${{ env.VERSION }}
|
|
severity-threshold: CRITICAL
|
|
run-quality-checks: true
|
|
|
|
ubuntu_cd:
|
|
name: Deploy
|
|
|
|
needs: ubuntu_ci
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Check out the codebase
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set variables
|
|
run: |
|
|
VER=$(cat VERSION)
|
|
echo "VERSION=$VER" >> $GITHUB_ENV
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
- name: Login to DockerHub
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_HUB_USER }}
|
|
password: ${{ secrets.DOCKER_HUB_PASS }}
|
|
logout: true
|
|
|
|
- name: Build Docker Image
|
|
uses: docker/build-push-action@v3
|
|
with:
|
|
push: true
|
|
context: .
|
|
file: Dockerfile
|
|
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
|
tags: |
|
|
${{ env.USER }}/${{ env.REPO }}:${{ env.VERSION }}
|
|
${{ env.USER }}/${{ env.REPO }}:latest
|