2022-12-23 23:09:14 -05:00
name : Publish Images
2022-12-23 20:26:05 -05:00
on :
push :
branches :
- main
jobs :
test :
name : Build and Test
2023-04-26 11:44:32 -04:00
runs-on : ubuntu-latest
2023-01-03 19:40:56 -05:00
concurrency :
2023-01-05 09:49:21 -05:00
group : ${{ github.workflow }}-main-${{ matrix.images.target }}
cancel-in-progress : true
2022-12-23 20:26:05 -05:00
permissions :
contents : read
deployments : write
issues : write
packages : write
strategy :
fail-fast : false
matrix :
images :
- environment : Production-SLIM
prefix : slim-
target : slim
- environment : Production
prefix : ""
image-id : standard
timeout-minutes : 60
steps :
- name : Checkout Code
uses : actions/checkout@v3
- name : Retrieve Datetime
run : echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "${GITHUB_ENV}"
- name : Login to GHCR
uses : docker/login-action@v2.1.0
with :
registry : ghcr.io
username : ${{ github.actor }}
password : ${{ secrets.GITHUB_TOKEN }}
2023-01-04 22:23:28 -05:00
- name : Start ${{ matrix.images.environment }} Deployment
2023-01-23 08:00:45 -05:00
uses : bobheadxi/deployments@v1.4.0
2022-12-23 20:26:05 -05:00
id : deployment
with :
step : start
token : ${{ secrets.GITHUB_TOKEN }}
env : ${{ matrix.images.environment }}
- name : Build and Push Image
uses : docker/build-push-action@v3
with :
context : .
file : ./Dockerfile
build-args : |
BUILD_DATE=${{ env.BUILD_DATE }}
BUILD_REVISION=${{ github.sha }}
BUILD_VERSION=${{ github.sha }}
load : false
push : true
2023-01-04 22:43:51 -05:00
secrets : |
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
2022-12-23 20:26:05 -05:00
tags : |
2023-05-25 18:36:07 -04:00
ghcr.io/super-linter/super-linter:${{ matrix.images.prefix }}latest
2022-12-23 20:26:05 -05:00
target : "${{ matrix.images.target }}"
2022-12-23 20:37:04 -05:00
- name : Update ${{ matrix.images.environment }} Deployment
2023-01-23 08:00:45 -05:00
uses : bobheadxi/deployments@v1.4.0
2023-01-03 19:40:56 -05:00
if : always()
2022-12-23 20:26:05 -05:00
with :
step : finish
token : ${{ secrets.GITHUB_TOKEN }}
status : ${{ job.status }}
deployment_id : ${{ steps.deployment.outputs.deployment_id }}
env : ${{ steps.deployment.outputs.env }}
2023-05-25 19:59:32 -04:00
env_url : https://github.com/super-linter/super-linter
2022-12-23 20:26:05 -05:00
- name : Create Issue on Failure
uses : actions/github-script@v6
2023-01-03 19:40:56 -05:00
if : failure()
2022-12-23 20:26:05 -05:00
with :
github-token : ${{secrets.GITHUB_TOKEN}}
script : |
const create = await github.rest.issues.create({
owner : context.repo.owner,
repo : context.repo.repo,
title : "Failed to deploy to production" ,
2023-05-15 15:36:24 -04:00
body : "Automation has failed us!\nMore information can be found at:\n - ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" ,
2022-12-23 20:26:05 -05:00
assignees : [
2023-07-05 18:26:01 -04:00
"zkoppert" , "Hanse00"
2022-12-23 20:26:05 -05:00
]
})