11name : Build Image
22
3- on : [push, pull_request , workflow_dispatch]
3+ on : [push, pull_request_target , workflow_dispatch]
44
55env :
6+ GITHUB_REPO : " linuxserver/docker-mods" # don't modify
67 ENDPOINT : " linuxserver/mods" # don't modify
78 BASEIMAGE : " lidarr" # replace
89 MODNAME : " flac2mp3" # replace
910
1011jobs :
11- build :
12+ set-vars :
1213 runs-on : ubuntu-latest
1314 steps :
14- 15-
16- - name : Build image
17- run : |
18- # Build variables
19- VERSION=${GITHUB_SHA:0:7}
20- cat <<EOF
21- Building version $VERSION
22- EOF
23- # Insert version into scripts
24- sed -i -e "s/{{VERSION}}/$VERSION/" \
25- $GITHUB_WORKSPACE/root/usr/local/bin/flac2mp3.sh \
26- $GITHUB_WORKSPACE/root/etc/cont-init.d/98-flac2mp3 \
27- $GITHUB_WORKSPACE/root/etc/s6-overlay/s6-rc.d/init-mod-lidarr-flac2mp3-add-package/run
28- # Build image
29- docker build --no-cache \
30- --tag ${{ github.sha }} .
31- - name : Tag image
32- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
33- run : |
34- docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
35- docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
36- docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
37- docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
38-
39- - name : Credential check
40- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }}
41- run : |
42- echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV
43- echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV
44- echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV
45- echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV
46- if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then
47- echo "::error::Push credential secrets missing."
48- echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings."
49- echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions."
50- exit 1
51- fi
52-
53- - name : Login to GitHub Container Registry
54- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }}
15+ - name : Set Vars
16+ id : outputs
5517 run : |
56- echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin
18+ echo "GITHUB_REPO=${{ env.GITHUB_REPO }}" >> $GITHUB_OUTPUT
19+ echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT
20+ echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT
21+ echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT
22+ # **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. ****
23+ MOD_VERSION=${GITHUB_SHA:0:7}
24+ echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT
25+ outputs :
26+ GITHUB_REPO : ${{ steps.outputs.outputs.GITHUB_REPO }}
27+ ENDPOINT : ${{ steps.outputs.outputs.ENDPOINT }}
28+ BASEIMAGE : ${{ steps.outputs.outputs.BASEIMAGE }}
29+ MODNAME : ${{ steps.outputs.outputs.MODNAME }}
30+ MOD_VERSION : ${{ steps.outputs.outputs.MOD_VERSION }}
5731
58- - name : Push tags to GitHub Container Registry
59- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }}
60- run : |
61- docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
62- docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}
63-
64- - name : Login to DockerHub
65- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
66- run : |
67- echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin
68-
69- - name : Push tags to DockerHub
70- if : ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }}
71- run : |
72- docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }}
73- docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}
32+ build :
33+ uses : linuxserver/github-workflows/.github/workflows/docker-mod-builder.yml@v1
34+ needs : set-vars
35+ secrets :
36+ CR_USER : ${{ secrets.CR_USER }}
37+ CR_PAT : ${{ secrets.CR_PAT }}
38+ DOCKERUSER : ${{ secrets.DOCKERUSER }}
39+ DOCKERPASS : ${{ secrets.DOCKERPASS }}
40+ with :
41+ GITHUB_REPO : ${{ needs.set-vars.outputs.GITHUB_REPO }}
42+ ENDPOINT : ${{ needs.set-vars.outputs.ENDPOINT }}
43+ BASEIMAGE : ${{ needs.set-vars.outputs.BASEIMAGE }}
44+ MODNAME : ${{ needs.set-vars.outputs.MODNAME }}
45+ MOD_VERSION : ${{ needs.set-vars.outputs.MOD_VERSION }}
0 commit comments