Browse Source
* change root user in dockerfile * build container on push/pr * grab docker build params from env * consolidate container build * rm unused container build workflow/script * cleanup ci * set user for earthly container build * rm ci docker build for develop branch * checkout full repo for docker builds * read earthly push from env * cleanup ci * rm unsupported option for actions/checkout@v3 * check dockerfile in ci * add dockerfile build to earthfile * authenticate to GH only on schedule builds * accurate name for dev container builder script * add note to the dockerfile about earthfile * document dev build process more clearlypull/2553/head
10 changed files with 134 additions and 121 deletions
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
name: Lint |
||||
|
||||
on: |
||||
push: |
||||
branches: |
||||
- webv2 |
||||
paths: |
||||
- 'Dockerfile' |
||||
pull_request: |
||||
branches: |
||||
- webv2 |
||||
paths: |
||||
- 'Dockerfile' |
||||
|
||||
jobs: |
||||
trivy: |
||||
name: Dockerfile |
||||
runs-on: ubuntu-latest |
||||
container: |
||||
image: aquasec/trivy |
||||
steps: |
||||
- uses: actions/checkout@v3 |
||||
|
||||
- name: Check critical issues |
||||
run: trivy config --exit-code 1 --severity "HIGH,CRITICAL" ./Dockerfile |
||||
|
||||
- name: Check non-critical issues |
||||
run: trivy config --severity "LOW,MEDIUM" ./Dockerfile |
||||
@ -0,0 +1,56 @@
@@ -0,0 +1,56 @@
|
||||
# See https://docs.earthly.dev/ci-integration/vendor-specific-guides/gh-actions-integration |
||||
# for details. |
||||
|
||||
name: Build development container |
||||
|
||||
on: |
||||
schedule: |
||||
- cron: '0 2 * * *' |
||||
push: |
||||
branches: |
||||
- webv2 |
||||
pull_request: |
||||
branches: |
||||
- webv2 |
||||
|
||||
jobs: |
||||
Earthly: |
||||
runs-on: ubuntu-latest |
||||
steps: |
||||
- name: Set up Earthly |
||||
uses: earthly/actions-setup@v1 |
||||
with: |
||||
version: 'latest' # or pin to an specific version, e.g. "v0.6.10" |
||||
|
||||
- name: Log Earthly version |
||||
run: earthly --version |
||||
|
||||
- name: Authenticate to GitHub Container Registry |
||||
if: ${{ github.event_name == 'schedule' && env.GH_CR_PAT != null }} |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
run: echo "${{ secrets.GH_CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin |
||||
|
||||
- name: Set up QEMU |
||||
uses: docker/setup-qemu-action@v2 |
||||
with: |
||||
image: tonistiigi/binfmt:latest |
||||
platforms: all |
||||
|
||||
- name: Checkout repo |
||||
uses: actions/checkout@v3 |
||||
with: |
||||
fetch-depth: 0 |
||||
|
||||
- name: Build and push |
||||
if: ${{ github.event_name == 'schedule' && env.GH_CR_PAT != null }} |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
EARTHLY_BUILD_TAG: 'webv2' |
||||
EARTHLY_BUILD_BRANCH: 'webv2' |
||||
EARTHLY_PUSH: true |
||||
run: ./build/develop/container.sh |
||||
|
||||
- name: Build |
||||
if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }} |
||||
run: ./build/develop/container.sh |
||||
@ -1,41 +0,0 @@
@@ -1,41 +0,0 @@
|
||||
# See https://docs.earthly.dev/ci-integration/vendor-specific-guides/gh-actions-integration |
||||
# for details. |
||||
|
||||
name: Build nightly docker |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
schedule: |
||||
- cron: '0 2 * * *' |
||||
|
||||
jobs: |
||||
Docker: |
||||
runs-on: ubuntu-latest |
||||
if: github.repository == 'owncast/owncast' |
||||
steps: |
||||
- uses: earthly/actions-setup@v1 |
||||
with: |
||||
version: 'latest' # or pin to an specific version, e.g. "v0.6.10" |
||||
|
||||
- name: Earthly version |
||||
run: earthly --version |
||||
|
||||
- name: Log into GitHub Container Registry |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
run: echo "${{ secrets.GH_CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin |
||||
if: env.GH_CR_PAT != null |
||||
|
||||
- name: Set up QEMU |
||||
id: qemu |
||||
uses: docker/setup-qemu-action@v2 |
||||
with: |
||||
image: tonistiigi/binfmt:latest |
||||
platforms: all |
||||
|
||||
- uses: actions/checkout@v3 |
||||
- name: Checkout and build |
||||
if: env.GH_CR_PAT != null |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
run: cd build/release && ./docker-nightly.sh |
||||
@ -1,43 +0,0 @@
@@ -1,43 +0,0 @@
|
||||
# See https://docs.earthly.dev/ci-integration/vendor-specific-guides/gh-actions-integration |
||||
# for details. |
||||
|
||||
name: Build webv2 docker |
||||
|
||||
on: |
||||
workflow_dispatch: |
||||
schedule: |
||||
- cron: '0 0 * * *' |
||||
|
||||
jobs: |
||||
Docker: |
||||
runs-on: ubuntu-latest |
||||
if: github.repository == 'owncast/owncast' |
||||
steps: |
||||
- uses: earthly/actions-setup@v1 |
||||
with: |
||||
version: 'latest' # or pin to an specific version, e.g. "v0.6.10" |
||||
|
||||
- name: Earthly version |
||||
run: earthly --version |
||||
|
||||
- name: Log into GitHub Container Registry |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
run: echo "${{ secrets.GH_CR_PAT }}" | docker login https://ghcr.io -u ${{ github.actor }} --password-stdin |
||||
if: env.GH_CR_PAT != null |
||||
|
||||
- name: Set up QEMU |
||||
id: qemu |
||||
uses: docker/setup-qemu-action@v2 |
||||
with: |
||||
image: tonistiigi/binfmt:latest |
||||
platforms: all |
||||
|
||||
- uses: actions/checkout@v3 |
||||
with: |
||||
fetch-depth: 0 |
||||
- name: Checkout and build |
||||
if: env.GH_CR_PAT != null |
||||
env: |
||||
GH_CR_PAT: ${{ secrets.GH_CR_PAT }} |
||||
run: cd build/release && ./docker-webv2.sh |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
#!/bin/sh |
||||
set -e |
||||
|
||||
# Development container builder |
||||
# |
||||
# Must authenticate first: https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages |
||||
# env vars: |
||||
# $EARTHLY_BUILD_BRANCH: git branch to checkout |
||||
# $EARTHLY_BUILD_TAG: tag for container image |
||||
|
||||
|
||||
EARTHLY_IMAGE_NAME="owncast" |
||||
BUILD_TAG=${EARTHLY_BUILD_TAG:-webv2} |
||||
DATE=$(date +"%Y%m%d") |
||||
VERSION="${DATE}-${BUILD_TAG}" |
||||
|
||||
|
||||
echo "Building container image ${EARTHLY_IMAGE_NAME}:${BUILD_TAG} ..." |
||||
|
||||
# Change to the root directory of the repository |
||||
cd "$(git rev-parse --show-toplevel)" || exit |
||||
if [ -n "${EARTHLY_BUILD_BRANCH}" ]; then |
||||
git checkout "${EARTHLY_BUILD_BRANCH}" || exit |
||||
fi |
||||
|
||||
earthly --ci +docker-all --image="ghcr.io/owncast/${EARTHLY_IMAGE_NAME}" --tag="${BUILD_TAG}" --version="${VERSION}" |
||||
earthly --ci +dockerfile |
||||
@ -1,14 +0,0 @@
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh |
||||
|
||||
# Docker build |
||||
# Must authenticate first: https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages |
||||
DOCKER_IMAGE="owncast" |
||||
DATE=$(date +"%Y%m%d") |
||||
VERSION="${DATE}-nightly" |
||||
|
||||
echo "Building Docker image ${DOCKER_IMAGE}..." |
||||
|
||||
# Change to the root directory of the repository |
||||
cd "$(git rev-parse --show-toplevel)" || exit |
||||
|
||||
earthly --ci --push +docker-all --image="ghcr.io/owncast/${DOCKER_IMAGE}" --tag=nightly --version="${VERSION}" |
||||
@ -1,15 +0,0 @@
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh |
||||
|
||||
# Docker build |
||||
# Must authenticate first: https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-docker-for-use-with-github-packages#authenticating-to-github-packages |
||||
DOCKER_IMAGE="owncast" |
||||
DATE=$(date +"%Y%m%d") |
||||
TAG="webv2" |
||||
VERSION="${DATE}-${TAG}" |
||||
echo "Building Docker image ${DOCKER_IMAGE}..." |
||||
|
||||
# Change to the root directory of the repository |
||||
cd "$(git rev-parse --show-toplevel)" || exit |
||||
git checkout webv2 |
||||
|
||||
earthly --ci --push +docker-all --image="ghcr.io/owncast/${DOCKER_IMAGE}" --tag="${TAG}" --version="${VERSION}" |
||||
Loading…
Reference in new issue