Skip to content

Build Docker image - stable #15

Build Docker image - stable

Build Docker image - stable #15

name: "Build Docker image - stable"
description: "Builds the Docker image for the stable release and pushes it to the GitHub Container Registry and Docker Hub. This workflow is triggered on the first day of each month at 00:00 UTC, or manually via workflow_dispatch."
on:
schedule:
- cron: "0 0 1 * *"
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
get_date:
name: Get current date in RFC 3339
runs-on: ubuntu-latest
outputs:
IMG_DATE: ${{ steps.date.outputs.IMG_DATE }}
steps:
- name: Get current date in RFC 3339
id: date
run: |
IMG_DATE=$(date --rfc-3339=seconds | sed 's/ /T/')
echo "IMG_DATE=${IMG_DATE}" >> $GITHUB_OUTPUT
echo "The date is $IMG_DATE"
get_pkg_version:
name: Get latest package version
runs-on: ubuntu-latest
outputs:
PKG_VER: ${{ steps.version.outputs.PKG_VER }}
steps:
- name: Override Ubuntu repos
run: |
echo -e "Package: *\nPin: origin packages.mozilla.org\nPin-Priority: 1000" | sudo tee -a /etc/apt/preferences.d/mozilla
- name: Add Mozilla APT repo
run: |
sudo curl -vSLo \
/etc/apt/keyrings/packages.mozilla.org.asc \
https://packages.mozilla.org/apt/repo-signing-key.gpg
echo \
"deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" \
| sudo tee -a /etc/apt/sources.list.d/mozilla.list && \
sudo apt-get update -y
- name: Get package version
id: version
run: |
PKG_VER=$(apt list firefox | awk -F'[ /]' '/firefox/ {print $3}' | cut -d'~' -f1)
echo "PKG_VER=${PKG_VER}" >> $GITHUB_OUTPUT
echo "The package version is $PKG_VER"
build_push:
name: Build and push image
runs-on: ubuntu-latest
needs: [get_date, get_pkg_version]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: 'master'
- name: Login to GitHub container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: tibor309
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: tibordev
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push image for amd64/arm64
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
file: ./Dockerfile
push: true
build-args: |
IMAGE_BUILD_DATE=${{ needs.get_date.outputs.IMG_DATE }}
tags: |
ghcr.io/tibor309/firefox:latest
ghcr.io/tibor309/firefox:stable
ghcr.io/tibor309/firefox:${{ needs.get_pkg_version.outputs.PKG_VER }}
tibordev/firefox:latest
tibordev/firefox:stable
tibordev/firefox:${{ needs.get_pkg_version.outputs.PKG_VER }}