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
|
||||
|
||||
ADD requirements.txt /requirements.txt
|
||||
ADD main.py /main.py
|
||||
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 PYTHONUNBUFFERED 1
|
||||
ENV PYTHONDONTWRITEBYTECODE 1
|
||||
|
||||
ENV PATH "$PATH:/home/root/.npm-global/bin"
|
||||
WORKDIR ./waka-readme-stats
|
||||
|
||||
RUN python -m pip install --upgrade pip wheel setuptools
|
||||
RUN pip install -r requirements.txt
|
||||
RUN npm -g config set user root
|
||||
RUN npm i -g npm@next-8
|
||||
RUN npm i -g vega vega-lite vega-cli canvas
|
||||
ADD requirements.txt ./requirements.txt
|
||||
ADD Makefile ./Makefile
|
||||
ADD sources/* ./
|
||||
|
||||
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:
|
||||
using: 'docker'
|
||||
image: 'Dockerfile'
|
||||
image: 'ghcr.io/anmol098/waka-readme-stats:master'
|
||||
|
||||
branding:
|
||||
icon: 'activity'
|
||||
|
||||
Reference in New Issue
Block a user