-
Notifications
You must be signed in to change notification settings - Fork 7
129 lines (110 loc) · 4.79 KB
/
docker-image.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Docker Image CI
on:
push:
branches:
- master
pull_request:
branches:
- master
schedule:
- cron: "0 2 * * 1-5"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build the Docker image
run: |
DEBIAN_FRONTEND=noninteractive sudo apt update
DEBIAN_FRONTEND=noninteractive sudo apt upgrade
DEBIAN_FRONTEND=noninteractive sudo apt install coreutils util-linux xz-utils
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
mkdir -p ~/.docker
echo $'{\n "experimental": "enabled"\n}' | sudo tee ~/.docker/config.json
sudo service docker restart
docker version -f '{{.Client.Experimental}}'
docker version -f '{{.Server.Experimental}}'
docker build --squash --file Dockerfile --tag dvda-author:release-master .
docker save -o dvda-author-release-master.tar dvda-author:release-master
[ -f dvda-author-release-master.tar ] && echo "Saved tar image." || "Could not tar."
xz -9 -k dvda-author-release-master.tar
[ -f dvda-author-release-master.tar.xz ] && echo "Saved tar.xz image." || "Could not tar.xz."
echo "b2sum: $(b2sum dvda-author-release-master.tar.xz)" > checksums.txt
echo "sha512sum: $(sha512sum dvda-author-release-master.tar.xz)" >> checksums.txt
- uses: dev-drprasad/delete-tag-and-release@v0.2.1
with:
delete_release: true # default: false
tag_name: release-master # tag name to delete
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# -m "Then load the image: "\
# -m " sudo docker load -i dvda-author-release-master.tar " \
# -m "Run as follows, if **audio** is your local directory containing audio files: " \
# -m " sudo docker run -it --privileged -v \$PWD/audio:/audio -v /dev/cdrom:/dev/cdrom -v /dev/sr0:/dev/sr0 dvda-author:release-master -g /audio/file.wav [... your options...]" \
# -m "Then after completion enter 'exit'." \
#
- name: Upload Release Assets
run: |
set -x
assets=()
tag_name="release-master"
for asset in checksums.txt dvda-author-${tag_name}.tar.xz; do
assets+=("-a" "$asset")
done
hub release create "${assets[@]}" \
-m "Release $tag_name" \
-m "This release was automatically created by the GitHub Actions workflow corresponding to directory .github in the repository." \
-m "The output is a checksum file and a compressed Docker image for the corresponding branch." \
-m "File **dvda-author-${tag_name}.tar.xz** is the compressed custom MKG Docker image for GNU/Linux built from latest repository sources. " \
-m "This image should work on any GNU/Linux distribution provided that Docker was previously installed. " \
-m "Download, check the control sums and uncompress it using **xz -d dvda-author-release-master.tar.xz**. " \
-m "Then load the image:" \
-m " sudo docker load -i dvda-author-release-master.tar" \
-m "Run as follows, if **audio** is your local directory containing audio files: " \
-m " sudo docker run -it --privileged -v path/to/audio:/audio -v /dev/cdrom:/dev/cdrom -v /dev/sr0:/dev/sr0 dvda-author:release-master -g /audio/file.wav ... your options..." \
-m "Then after completion enter \'exit\'." \
"$tag_name"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload artifact
uses: actions/upload-artifact@v2.3.1
with:
name: dvda-author
path: |
${{ github.workspace }}/dvda-author-release-master.tar
${{ github.workspace }}/Dockerfile2
push:
runs-on: ubuntu-latest
needs: build
steps:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to Github Packages
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GHCR_PAT }}
- name: Download artifact
uses: actions/download-artifact@v4.1.7
with:
name: dvda-author
- name: Load image
run: |
docker load --input dvda-author-release-master.tar
docker image ls -a
docker tag dvda-author:release-master fabnicol/dvda-author:latest
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
file: Dockerfile2
push: true
tags: fabnicol/dvda-author:latest