Skip to content

Commit

Permalink
Merge branch 'main' into ci
Browse files Browse the repository at this point in the history
  • Loading branch information
vogler authored Nov 7, 2023
2 parents 0040d9d + 798b130 commit 6113ea4
Show file tree
Hide file tree
Showing 17 changed files with 1,034 additions and 97 deletions.
8 changes: 6 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
node_modules
data
node_modules/
data/
*.env

.gitignore
.github/

**Dockerfile**
.dockerignore

33 changes: 22 additions & 11 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,17 @@ name: Build and push Docker image (amd64, arm64 to hub.docker.com and ghcr.io)
on:
workflow_dispatch: # allow manual trigger
# https://github.com/orgs/community/discussions/26276
push: # on every branch, but not for PRs from forks?
paths:
push:
branches:
- "main"
- "v*"
tags:
- "v*"
paths: # ignore changes to certain files
- '**'
- '!README.md'
- '!.github/**'
- '.github/workflows/docker.yml'
pull_request: # includes PRs from forks but only triggers on creation, not pushes?
- '!*.md'
# - '!.github/**'
pull_request: # runs when opened/reopned or when the head branch is updated, see https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request
branches:
- "main" # only PRs against main

Expand All @@ -25,6 +29,11 @@ jobs:
run: |
echo "BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
echo "NOW=$(date -R)" >> $GITHUB_ENV # date -Iseconds; date +'%Y-%m-%dT%H:%M:%S'
if [[ "${{ env.BRANCH }}" == "main" ]]; then
echo "IMAGE_TAG=latest" >> $GITHUB_ENV
else
echo "IMAGE_TAG=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
fi
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand All @@ -34,7 +43,7 @@ jobs:
-
name: Login to Docker Hub
uses: docker/login-action@v3
# if: ${{ secrets.DOCKERHUB_USERNAME && secrets.DOCKERHUB_TOKEN }}
if: github.event_name != 'pull_request' # TODO if DOCKERHUB_* are set?
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
Expand All @@ -43,21 +52,23 @@ jobs:
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
username: ${{ github.actor }} # actor is user that opened PR, was repository_owner before
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v5
# if: github.event_name != 'pull_request' # still want to build image
with:
context: .
push: true
push: ${{ github.event_name != 'pull_request' }} # TODO push for forks?
build-args: |
COMMIT=${{ github.sha }}
BRANCH=${{ env.BRANCH }}
NOW=${{ env.NOW }}
platforms: linux/amd64,linux/arm64 # ,linux/arm/v7
# TODO docker tag only if DOCKERHUB_* are set?
tags: |
voglerr/free-games-claimer:latest
ghcr.io/vogler/free-games-claimer:latest
${{ secrets.DOCKERHUB_USERNAME }}/free-games-claimer:${{env.IMAGE_TAG}}
ghcr.io/${{ github.actor }}/free-games-claimer:${{env.IMAGE_TAG}}
cache-from: type=gha
cache-to: type=gha,mode=max
6 changes: 6 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Contribute

## Building and publishing docker images
Setup the secrets for DOCKERHUB_USERNAME and [DOCKERHUB_TOKEN](https://hub.docker.com/settings/security) in https://github.com/YOUR_USERNAME/free-games-claimer/settings/secrets/actions to be able to run the docker.yml workflows.

Check if under Workflow Permissions in https://github.com/YOUR_USERNAME/free-games-claimer/settings/actions the radio button is set to "Read and write permissions". In case that's not set the push to ghcr.io will fail.
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ RUN apt-get update \
libgdk-pixbuf-2.0-0 \
libdbus-glib-1-2 \
libxcursor1 \
&& apt-get autoclean -y \
&& apt-get autoremove -y \
&& apt-get clean \
&& rm -rf \
/tmp/* \
/usr/share/doc/* \
Expand All @@ -64,7 +64,7 @@ RUN npm install
COPY . .

# Shell scripts need Linux line endings. On Windows, git might be configured to check out dos/CRLF line endings, so we convert them for those people in case they want to build the image. They could also use --config core.autocrlf=input
RUN dos2unix *.sh && chmod +x *.sh
RUN dos2unix ./*.sh && chmod +x ./*.sh
COPY docker-entrypoint.sh /usr/local/bin/

ARG COMMIT=""
Expand Down
Loading

0 comments on commit 6113ea4

Please sign in to comment.