You've already forked wakapi-readme-stats
Makefile added; targets for local action run and image building added; workflow for image building and publishing added; image building in action replaced with container pulling
This commit is contained in:
41
.github/workflows/build_image.yml
vendored
Normal file
41
.github/workflows/build_image.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: PUBLISH_IMAGE
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
publish-server-image:
|
||||||
|
name: Publish `waka-readme-stats` Container
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout 🛎️
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Log in to the Container registry 🚪
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Extract metadata (tags, labels) for Docker 🏋️
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v3
|
||||||
|
with:
|
||||||
|
images: ghcr.io/${{ github.repository }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=branch
|
||||||
|
type=ref,event=pr
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
|
||||||
|
- name: Build and push Docker image 🏗️
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
push: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/releases') }}
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
22
Dockerfile
22
Dockerfile
@@ -1,18 +1,14 @@
|
|||||||
FROM nikolaik/python-nodejs:python3.9-nodejs16
|
FROM nikolaik/python-nodejs:python3.9-nodejs16
|
||||||
|
|
||||||
ADD requirements.txt /requirements.txt
|
ENV PYTHONUNBUFFERED 1
|
||||||
ADD main.py /main.py
|
ENV PYTHONDONTWRITEBYTECODE 1
|
||||||
ADD loc.py /loc.py
|
|
||||||
ADD make_bar_graph.py /make_bar_graph.py
|
|
||||||
ADD colors.json /colors.json
|
|
||||||
ADD translation.json /translation.json
|
|
||||||
|
|
||||||
ENV PATH "$PATH:/home/root/.npm-global/bin"
|
WORKDIR ./waka-readme-stats
|
||||||
|
|
||||||
RUN python -m pip install --upgrade pip wheel setuptools
|
ADD requirements.txt ./requirements.txt
|
||||||
RUN pip install -r requirements.txt
|
ADD Makefile ./Makefile
|
||||||
RUN npm -g config set user root
|
ADD sources/* ./
|
||||||
RUN npm i -g npm@next-8
|
|
||||||
RUN npm i -g vega vega-lite vega-cli canvas
|
|
||||||
|
|
||||||
ENTRYPOINT ["python", "/main.py"]
|
RUN make dependencies
|
||||||
|
|
||||||
|
ENTRYPOINT python3 ./main.py
|
||||||
|
|||||||
43
Makefile
Normal file
43
Makefile
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
.DEFAULT_GOAL = run
|
||||||
|
SHELL = /bin/bash
|
||||||
|
|
||||||
|
PATH := venv/bin:node_modules/.bin:$(PATH)
|
||||||
|
|
||||||
|
|
||||||
|
help:
|
||||||
|
@echo "Welcome to `waka-readme-stats` github action!"
|
||||||
|
@echo "The action can be tested locally with: `make run`"
|
||||||
|
@echo "NB! For local testing Python version between ??? and ??? and NodeJS version between ??? and ??? are required"
|
||||||
|
@echo "The action image can be built locally with: `make container`"
|
||||||
|
@echo "NB! For local container building Docker version between ??? and ??? is required"
|
||||||
|
@echo "The action directory and image can be cleaned with: `make clean`"
|
||||||
|
.PHONY: help
|
||||||
|
|
||||||
|
venv:
|
||||||
|
python3 -m venv venv
|
||||||
|
pip install --upgrade pip
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
node_modules:
|
||||||
|
npm i npm@next-8
|
||||||
|
npm i vega vega-lite vega-cli canvas
|
||||||
|
|
||||||
|
dependencies: venv node_modules
|
||||||
|
.PHONY: dependencies
|
||||||
|
|
||||||
|
|
||||||
|
run: dependencies
|
||||||
|
source <(cat .env.example | sed 's/=/=/' | sed 's/^/export /') && python3 ./sources/main.py
|
||||||
|
.PHONY: run
|
||||||
|
|
||||||
|
|
||||||
|
container:
|
||||||
|
docker build -t waka-readme-stats -f Dockerfile .
|
||||||
|
.PHONY: container
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf venv
|
||||||
|
rm -rf node_modules
|
||||||
|
docker rmi -f waka-readme-stats 2>/dev/null
|
||||||
|
.PHONY: clean
|
||||||
@@ -129,7 +129,7 @@ inputs:
|
|||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: 'docker'
|
||||||
image: 'Dockerfile'
|
image: 'ghcr.io/anmol098/waka-readme-stats:master'
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: 'activity'
|
icon: 'activity'
|
||||||
|
|||||||
Reference in New Issue
Block a user