Fix build script for Apple Silicon MacOS. (#520) #219
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Push to Docker Hub | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- 'webpage/**' | |
# | |
# Run this action periodically to keep browsers up-to-date | |
# even if there is no activity in this repo. | |
# | |
schedule: | |
- cron: "43 2 * * 1" | |
# allow only one workflow to run at a time | |
# and cancel in-progress jobs if a new one is triggered | |
concurrency: | |
group: "dockerhub" | |
cancel-in-progress: true | |
env: | |
DOCKER_IMAGE: m1k1o/neko | |
jobs: | |
build-base: | |
name: Base Image | |
runs-on: ubuntu-latest | |
# | |
# do not run on forks | |
# | |
if: github.repository_owner == 'm1k1o' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Extract metadata (tags, labels) for Docker | |
uses: docker/metadata-action@v5 | |
id: meta | |
with: | |
images: ${{ env.DOCKER_IMAGE }} | |
tags: | | |
type=raw,value=base | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ github.actor }} | |
password: ${{ secrets.DOCKER_TOKEN }} | |
- name: Generate base Dockerfile | |
run: go run utils/docker/main.go -i Dockerfile.tmpl -o Dockerfile | |
- name: Build and push | |
uses: docker/build-push-action@v6 | |
with: | |
context: ./ | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
build-app: | |
name: App Image | |
runs-on: ubuntu-latest | |
# | |
# do not run on forks | |
# | |
if: github.repository_owner == 'm1k1o' | |
needs: build-base | |
strategy: | |
# Will build all images even if some fail. | |
fail-fast: false | |
matrix: | |
tag: | |
- firefox | |
# Temporarily disabled due to Cloudflare blocked download link | |
#- waterfox | |
- chromium | |
- google-chrome | |
- ungoogled-chromium | |
- microsoft-edge | |
- brave | |
- vivaldi | |
- opera | |
- tor-browser | |
- remmina | |
- vlc | |
- xfce | |
- kde | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Extract metadata (tags, labels) for Docker | |
uses: docker/metadata-action@v5 | |
id: meta | |
with: | |
images: ${{ env.DOCKER_IMAGE }} | |
tags: | | |
type=raw,value=latest,enable=${{ matrix.tag == 'firefox' }} | |
type=raw,value=${{ matrix.tag }} | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ github.actor }} | |
password: ${{ secrets.DOCKER_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v6 | |
with: | |
context: apps/${{ matrix.tag }} | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
BASE_IMAGE=${{ env.DOCKER_IMAGE }}:base | |
cache-from: type=gha | |
cache-to: type=gha,mode=max |