feat: update docker and pipeline
- Add workflow to publish to GHCR - Add workflow to build Docker image - Add zap2xmlrc config example - Update Dockerfile to run continuously
This commit is contained in:
1
.github/CODEOWNERS
vendored
Normal file
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* @jef
|
||||
2
.github/FUNDING.yml
vendored
Normal file
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
github: jef
|
||||
custom: ["https://www.paypal.me/jxf"]
|
||||
27
.github/ISSUE_TEMPLATE/bug-remote.md
vendored
Normal file
27
.github/ISSUE_TEMPLATE/bug-remote.md
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Report a bug for this project
|
||||
---
|
||||
|
||||
## Expected Behavior
|
||||
|
||||
<!-- Tell us what should happen -->
|
||||
|
||||
## Current Behavior
|
||||
|
||||
<!-- Tell us what happens instead of the expected behavior -->
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
<!-- Provide a link to a live example, or an unambiguous set of steps to reproduce this bug. -->
|
||||
<!-- Include code to reproduce, if relevant -->
|
||||
|
||||
## Environment
|
||||
|
||||
- OS:
|
||||
|
||||
</details>
|
||||
|
||||
## Logs
|
||||
|
||||
<!-- Provide a brief log -->
|
||||
12
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
12
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
name: 🚀 Feature request
|
||||
about: Suggest a new idea
|
||||
---
|
||||
|
||||
### Description
|
||||
|
||||
<!-- Describe the feature here. -->
|
||||
|
||||
### Possible solution
|
||||
|
||||
<!-- Describe the possible solution here. -->
|
||||
19
.github/pull_request_template.md
vendored
Normal file
19
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<!-- Please use Conventional Commits to label your title -->
|
||||
<!-- https://www.conventionalcommits.org/en/v1.0.0/ -->
|
||||
<!-- Example: feat: allow provided config object to extend other configs -->
|
||||
|
||||
### Description
|
||||
|
||||
<!-- Fixes #(issue) -->
|
||||
<!-- Please also include relevant motivation and context. -->
|
||||
|
||||
### Testing
|
||||
|
||||
<!-- Please describe the tests that you ran to verify your changes. -->
|
||||
<!-- Provide instructions so we can reproduce. -->
|
||||
<!-- Please also list any relevant details for your test configuration -->
|
||||
|
||||
### New dependencies
|
||||
|
||||
<!-- List any dependencies that are required for this change. -->
|
||||
<!-- Otherwise, delete section. -->
|
||||
14
.github/workflows/ci.yaml
vendored
Normal file
14
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
name: Continuous Integration
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Build service
|
||||
run: docker build .
|
||||
23
.github/workflows/nightly-release.yaml
vendored
Normal file
23
.github/workflows/nightly-release.yaml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Nightly Release
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch: {}
|
||||
jobs:
|
||||
build-release:
|
||||
name: Build and release Docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Login into GitHub Container Registry
|
||||
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
docker build \
|
||||
-t "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}" \
|
||||
-t "ghcr.io/${GITHUB_REPOSITORY}:nightly" .
|
||||
- name: Release Docker image
|
||||
run: |
|
||||
docker push "ghcr.io/${GITHUB_REPOSITORY}:${GITHUB_SHA:0:7}"
|
||||
docker push "ghcr.io/${GITHUB_REPOSITORY}:nightly"
|
||||
34
.github/workflows/release.yaml
vendored
Normal file
34
.github/workflows/release.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Release
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
jobs:
|
||||
build-tag-release:
|
||||
name: Build, tag, and release Docker image
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup release please
|
||||
uses: google-github-actions/release-please-action@v2
|
||||
id: release
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
release-type: simple
|
||||
changelog-path: CHANGELOG.md
|
||||
package-name: zap2xml
|
||||
- name: Login into GitHub Container Registry
|
||||
if: ${{ steps.release.outputs.release_created }}
|
||||
run: echo ${{ secrets.CR_PAT }} | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin
|
||||
- name: Build Docker image
|
||||
if: ${{ steps.release.outputs.release_created }}
|
||||
run: |
|
||||
docker build \
|
||||
-t "ghcr.io/${GITHUB_REPOSITORY}:${{ steps.release.outputs.tag_name }}" \
|
||||
-t "ghcr.io/${GITHUB_REPOSITORY}:latest" .
|
||||
- name: Release Docker image
|
||||
if: ${{ steps.release.outputs.release_created }}
|
||||
run: |
|
||||
docker push "ghcr.io/${GITHUB_REPOSITORY}:${{ steps.release.outputs.tag_name }}"
|
||||
docker push "ghcr.io/${GITHUB_REPOSITORY}:latest"
|
||||
20
.zap2xmlrc-example
Normal file
20
.zap2xmlrc-example
Normal file
@@ -0,0 +1,20 @@
|
||||
start=0
|
||||
days=7
|
||||
ncdays=0
|
||||
ncsdays=0
|
||||
ncmday=-1
|
||||
retries=3
|
||||
user=user
|
||||
pass=password
|
||||
cache=/config/cache
|
||||
icon=/config/icons
|
||||
trailer=/config/trailers
|
||||
lang=en
|
||||
proxy=http://localhost:8080
|
||||
outfile=/xmltv/xmltv.xml
|
||||
outformat=xmltv (or 'xtvd')
|
||||
lineuptype=type (xtvd only - Cable/CableDigital/Satellite/LocalBroadcast)
|
||||
lineupname=name (xtvd only)
|
||||
lineuplocation=location (xtvd only)
|
||||
lineupid=X:80000
|
||||
postalcode=01010
|
||||
0
CHANGELOG.md
Normal file
0
CHANGELOG.md
Normal file
19
Dockerfile
Normal file
19
Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM alpine:3.13.5
|
||||
|
||||
ENV SLEEPTIME=43200
|
||||
|
||||
RUN apk add --no-cache \
|
||||
perl \
|
||||
perl-http-cookies \
|
||||
perl-lwp-useragent-determined \
|
||||
perl-json \
|
||||
perl-json-xs \
|
||||
perl-lwp-protocol-https \
|
||||
perl-gd
|
||||
|
||||
WORKDIR /opt
|
||||
|
||||
COPY zap2xml.pl zap2xml.pl
|
||||
COPY entrypoint.sh entrypoint.sh
|
||||
|
||||
ENTRYPOINT ["./entrypoint.sh"]
|
||||
29
README.md
Normal file
29
README.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# zap2xml
|
||||
|
||||
See [zap2xml](https://web.archive.org/web/20200426004001/zap2xml.awardspace.info/) for original Perl script and guidance for the configuration file.
|
||||
|
||||
## Docker
|
||||
|
||||
| Tag | Description |
|
||||
|---|---|
|
||||
| latest | Stable zap2xml releases |
|
||||
| nightly | HEAD zap2xml release |
|
||||
|
||||
### Compose
|
||||
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
zap2xml:
|
||||
container_name: zap2xml
|
||||
image: ghcr.io/jef/zap2xml:latest
|
||||
environment:
|
||||
OPT_ARGS: >-
|
||||
-I -D -C /config/.zap2xmlrc
|
||||
SLEEPTIME: 43200 # 12 hours in seconds
|
||||
TZ: America/New_York
|
||||
volumes:
|
||||
- /path/to/appdata/zap2xml:/config
|
||||
- /path/to/appdata/xmltv:/xmltv # nice for mapping other drives to this that may use xmltv.xml
|
||||
restart: unless-stopped
|
||||
```
|
||||
10
entrypoint.sh
Executable file
10
entrypoint.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
while :
|
||||
do
|
||||
DATE=$(date)
|
||||
/opt/zap2xml.pl "$OPT_ARGS"
|
||||
echo "Last run time: $DATE"
|
||||
echo "Will run in $SLEEPTIME seconds"
|
||||
sleep "$SLEEPTIME"
|
||||
done
|
||||
1
version.txt
Normal file
1
version.txt
Normal file
@@ -0,0 +1 @@
|
||||
0.1.0
|
||||
1594
zap2xml.pl
Executable file
1594
zap2xml.pl
Executable file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user