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
runs-on : ubuntu-20.04-8core-sl
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 Docker Hub
uses : docker/login-action@v2.1.0
with :
username : ${{ secrets.DOCKER_USERNAME }}
password : ${{ secrets.DOCKER_PASSWORD }}
- 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
2022-12-23 20:26:05 -05:00
uses : bobheadxi/deployments@v1.3.0
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 : |
github/super-linter:${{ matrix.images.prefix }}latest
ghcr.io/github/super-linter:${{ matrix.images.prefix }}latest
target : "${{ matrix.images.target }}"
2022-12-23 20:37:04 -05:00
- name : Update ${{ matrix.images.environment }} Deployment
2022-12-23 20:26:05 -05:00
uses : bobheadxi/deployments@v1.3.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 }}
env_url : https://github.com/github/super-linter
- 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" ,
body : "Automation has failed us!\nMore information can be found at:\n - ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
assignees : [
"lindluni"
]
})