mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 03:35:43 +00:00
* exclude polkadot-parachain .asc and .sha256 from .dockerignore * refactor docker image creation GHA * add debug * try without quotes * test action * add quotes * fix quotes atumated image publishing GHA * delete old unused part --------- Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
**/*.txt
|
**/*.txt
|
||||||
**/*.md
|
**/*.md
|
||||||
/docker/
|
/docker/
|
||||||
!/target/release/polkadot-parachain
|
!/target/release-artifacts/**/*
|
||||||
|
|
||||||
# dotfiles in the repo root
|
# dotfiles in the repo root
|
||||||
/.*
|
/.*
|
||||||
|
|||||||
+49
-27
@@ -20,7 +20,6 @@ jobs:
|
|||||||
docker_build_publish:
|
docker_build_publish:
|
||||||
env:
|
env:
|
||||||
BINARY: polkadot-parachain
|
BINARY: polkadot-parachain
|
||||||
TMP: tmp
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -31,8 +30,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Prepare temp folder
|
- name: Prepare temp folder
|
||||||
run: |
|
run: |
|
||||||
mkdir ${TMP}
|
TMP=$(mktemp -d)
|
||||||
ls -al
|
echo "TMP folder: $TMP"
|
||||||
|
echo "TMP=$TMP" >> $GITHUB_ENV
|
||||||
|
pwd
|
||||||
|
ls -al "$TMP"
|
||||||
|
|
||||||
- name: Fetch files from release
|
- name: Fetch files from release
|
||||||
working-directory: ${{ env.TMP }}
|
working-directory: ${{ env.TMP }}
|
||||||
@@ -49,45 +51,65 @@ jobs:
|
|||||||
chmod a+x $BINARY
|
chmod a+x $BINARY
|
||||||
ls -al
|
ls -al
|
||||||
|
|
||||||
- name: Check files
|
- name: Check SHA256
|
||||||
working-directory: ${{ env.TMP }}
|
working-directory: ${{ env.TMP }}
|
||||||
run: |
|
run: |
|
||||||
ls -al *$BINARY*
|
ls -al *$BINARY*
|
||||||
shasum -a 256 -c $BINARY.sha256
|
shasum -a 256 -c $BINARY.sha256
|
||||||
sha_result=$?
|
sha_result=$?
|
||||||
|
|
||||||
KEY_PARITY_SEC=9D4B2B6EB8F97156D19669A9FF0812D491B96798
|
|
||||||
KEY_CHEVDOR=2835EAF92072BC01D188AF2C4A092B93E97CE1E2
|
|
||||||
KEYSERVER=keyserver.ubuntu.com
|
|
||||||
|
|
||||||
gpg --keyserver $KEYSERVER --receive-keys $KEY_PARITY_SEC
|
|
||||||
if [[ ${{ github.event.inputs.prerelease }} == "true" ]]; then
|
|
||||||
gpg --keyserver $KEYSERVER --receive-keys $KEY_CHEVDOR
|
|
||||||
fi
|
|
||||||
|
|
||||||
gpg --verify $BINARY.asc
|
|
||||||
gpg_result=$?
|
|
||||||
|
|
||||||
echo sha_result: $sha_result
|
echo sha_result: $sha_result
|
||||||
echo gpg_result: $gpg_result
|
|
||||||
|
|
||||||
# If it fails, it would fail earlier but a second check
|
if [[ $sha_result -ne 0 ]]; then
|
||||||
# does not hurt in case of refactoring...
|
echo "SHA256 check failed, exiting with error"
|
||||||
if [[ $sha_result -ne 0 || $gpg_result -ne 0 ]]; then
|
|
||||||
echo "Check failed, exiting with error"
|
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Checks passed"
|
echo "SHA256 check passed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Check GPG
|
||||||
|
working-directory: ${{ env.TMP }}
|
||||||
|
run: |
|
||||||
|
KEY_PARITY_SEC=9D4B2B6EB8F97156D19669A9FF0812D491B96798
|
||||||
|
KEY_CHEVDOR=2835EAF92072BC01D188AF2C4A092B93E97CE1E2
|
||||||
|
KEY_EGOR=E6FC4D4782EB0FA64A4903CCDB7D3555DD3932D3
|
||||||
|
KEYSERVER=keyserver.ubuntu.com
|
||||||
|
|
||||||
|
gpg --keyserver $KEYSERVER --receive-keys $KEY_PARITY_SEC
|
||||||
|
echo -e "5\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key $KEY_PARITY_SEC trust;
|
||||||
|
|
||||||
|
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
|
||||||
|
for key in $KEY_CHEVDOR $KEY_EGOR; do
|
||||||
|
(
|
||||||
|
echo "Importing GPG key $key"
|
||||||
|
gpg --no-tty --quiet --keyserver $GPG_KEYSERVER --recv-keys $key
|
||||||
|
echo -e "4\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key $key trust;
|
||||||
|
) &
|
||||||
|
done
|
||||||
|
wait
|
||||||
|
fi
|
||||||
|
|
||||||
|
gpg --no-tty --verify $BINARY.asc
|
||||||
|
gpg_result=$?
|
||||||
|
|
||||||
|
echo gpg_result: $gpg_result
|
||||||
|
|
||||||
|
if [[ $gpg_result -ne 0 ]]; then
|
||||||
|
echo "GPG check failed, exiting with error"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "GPG check passed"
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Build injected image
|
- name: Build injected image
|
||||||
env:
|
env:
|
||||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
DOCKERHUB_ORG: parity
|
DOCKERHUB_ORG: parity
|
||||||
|
OWNER: ${{ env.DOCKERHUB_ORG }}
|
||||||
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
IMAGE_NAME: polkadot-parachain
|
||||||
run: |
|
run: |
|
||||||
export OWNER=$DOCKERHUB_ORG
|
mkdir -p target/release-artifacts
|
||||||
mkdir -p target/release
|
cp -f ${TMP}/$BINARY* target/release-artifacts/
|
||||||
cp -f ${TMP}/$BINARY* target/release/
|
|
||||||
./docker/scripts/build-injected-image.sh
|
./docker/scripts/build-injected-image.sh
|
||||||
|
|
||||||
- name: Login to Dockerhub
|
- name: Login to Dockerhub
|
||||||
@@ -131,4 +153,4 @@ jobs:
|
|||||||
docker push $DOCKERHUB_ORG/$BINARY:$SEMVER
|
docker push $DOCKERHUB_ORG/$BINARY:$SEMVER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker images | grep $DOCKERHUB_ORG/$BINARY
|
docker images
|
||||||
|
|||||||
+39
-18
@@ -15,7 +15,6 @@ jobs:
|
|||||||
docker_build_publish:
|
docker_build_publish:
|
||||||
env:
|
env:
|
||||||
BINARY: polkadot-parachain
|
BINARY: polkadot-parachain
|
||||||
TMP: tmp
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -26,8 +25,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Prepare temp folder
|
- name: Prepare temp folder
|
||||||
run: |
|
run: |
|
||||||
mkdir ${TMP}
|
TMP=$(mktemp -d)
|
||||||
ls -al
|
echo "TMP=$TMP" >> "$GITHUB_ENV"
|
||||||
|
pwd
|
||||||
|
ls -al "$TMP"
|
||||||
|
|
||||||
- name: Fetch files from release
|
- name: Fetch files from release
|
||||||
working-directory: ${{ env.TMP }}
|
working-directory: ${{ env.TMP }}
|
||||||
@@ -48,45 +49,65 @@ jobs:
|
|||||||
chmod a+x $BINARY
|
chmod a+x $BINARY
|
||||||
ls -al
|
ls -al
|
||||||
|
|
||||||
- name: Check files
|
- name: Check SHA256
|
||||||
working-directory: ${{ env.TMP }}
|
working-directory: ${{ env.TMP }}
|
||||||
run: |
|
run: |
|
||||||
ls -al *$BINARY*
|
ls -al *$BINARY*
|
||||||
shasum -a 256 -c $BINARY.sha256
|
shasum -a 256 -c $BINARY.sha256
|
||||||
sha_result=$?
|
sha_result=$?
|
||||||
|
|
||||||
|
echo sha_result: $sha_result
|
||||||
|
|
||||||
|
if [[ $sha_result -ne 0 ]]; then
|
||||||
|
echo "SHA256 check failed, exiting with error"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "SHA256 check passed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check GPG
|
||||||
|
working-directory: ${{ env.TMP }}
|
||||||
|
run: |
|
||||||
KEY_PARITY_SEC=9D4B2B6EB8F97156D19669A9FF0812D491B96798
|
KEY_PARITY_SEC=9D4B2B6EB8F97156D19669A9FF0812D491B96798
|
||||||
KEY_CHEVDOR=2835EAF92072BC01D188AF2C4A092B93E97CE1E2
|
KEY_CHEVDOR=2835EAF92072BC01D188AF2C4A092B93E97CE1E2
|
||||||
|
KEY_EGOR=E6FC4D4782EB0FA64A4903CCDB7D3555DD3932D3
|
||||||
KEYSERVER=keyserver.ubuntu.com
|
KEYSERVER=keyserver.ubuntu.com
|
||||||
|
|
||||||
gpg --keyserver $KEYSERVER --receive-keys $KEY_PARITY_SEC
|
gpg --keyserver $KEYSERVER --receive-keys $KEY_PARITY_SEC
|
||||||
if [[ ${{ github.event.release.prerelease }} == "true" ]]; then
|
echo -e "5\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key $KEY_PARITY_SEC trust;
|
||||||
gpg --keyserver $KEYSERVER --receive-keys $KEY_CHEVDOR
|
|
||||||
|
if [[ "${{ github.event.release.prerelease }}" == "true" ]]; then
|
||||||
|
for key in $KEY_CHEVDOR $KEY_EGOR; do
|
||||||
|
(
|
||||||
|
echo "Importing GPG key $key"
|
||||||
|
gpg --no-tty --quiet --keyserver $GPG_KEYSERVER --recv-keys $key
|
||||||
|
echo -e "4\ny\n" | gpg --no-tty --command-fd 0 --expert --edit-key $key trust;
|
||||||
|
) &
|
||||||
|
done
|
||||||
|
wait
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gpg --verify $BINARY.asc
|
gpg --no-tty --verify $BINARY.asc
|
||||||
gpg_result=$?
|
gpg_result=$?
|
||||||
|
|
||||||
echo sha_result: $sha_result
|
|
||||||
echo gpg_result: $gpg_result
|
echo gpg_result: $gpg_result
|
||||||
|
|
||||||
# If it fails, it would fail earlier but a second check
|
if [[ $gpg_result -ne 0 ]]; then
|
||||||
# does not hurt in case of refactoring...
|
echo "GPG check failed, exiting with error"
|
||||||
if [[ $sha_result -ne 0 || $gpg_result -ne 0 ]]; then
|
|
||||||
echo "Check failed, exiting with error"
|
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo "Checks passed"
|
echo "GPG check passed"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Build injected image
|
- name: Build injected image
|
||||||
env:
|
env:
|
||||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
DOCKERHUB_ORG: parity
|
DOCKERHUB_ORG: parity
|
||||||
|
OWNER: ${{ env.DOCKERHUB_ORG }}
|
||||||
|
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
IMAGE_NAME: polkadot-parachain
|
||||||
run: |
|
run: |
|
||||||
export OWNER=$DOCKERHUB_ORG
|
mkdir -p target/release-artifacts
|
||||||
mkdir -p target/release
|
cp -f ${TMP}/$BINARY* target/release-artifacts/
|
||||||
cp -f ${TMP}/$BINARY* target/release/
|
|
||||||
./docker/scripts/build-injected-image.sh
|
./docker/scripts/build-injected-image.sh
|
||||||
|
|
||||||
- name: Login to Dockerhub
|
- name: Login to Dockerhub
|
||||||
@@ -130,4 +151,4 @@ jobs:
|
|||||||
docker push $DOCKERHUB_ORG/$BINARY:$SEMVER
|
docker push $DOCKERHUB_ORG/$BINARY:$SEMVER
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker images | grep $DOCKERHUB_ORG/$BINARY
|
docker images
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM docker.io/library/ubuntu:20.04
|
FROM docker.io/parity/base-bin
|
||||||
|
|
||||||
# metadata
|
# metadata
|
||||||
ARG VCS_REF
|
ARG VCS_REF
|
||||||
@@ -17,35 +17,20 @@ LABEL io.parity.image.authors="devops-team@parity.io" \
|
|||||||
# show backtraces
|
# show backtraces
|
||||||
ENV RUST_BACKTRACE 1
|
ENV RUST_BACKTRACE 1
|
||||||
|
|
||||||
# install tools and dependencies
|
USER root
|
||||||
RUN apt-get update && \
|
|
||||||
DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
RUN mkdir -p /specs
|
||||||
libssl1.1 \
|
|
||||||
ca-certificates \
|
|
||||||
curl && \
|
|
||||||
# apt cleanup
|
|
||||||
apt-get autoremove -y && \
|
|
||||||
apt-get clean && \
|
|
||||||
find /var/lib/apt/lists/ -type f -not -name lock -delete; \
|
|
||||||
# add user and link ~/.local/share/polkadot to /data
|
|
||||||
useradd -m -u 1000 -U -s /bin/sh -d /polkadot polkadot && \
|
|
||||||
mkdir -p /data /polkadot/.local/share && \
|
|
||||||
chown -R polkadot:polkadot /data && \
|
|
||||||
ln -s /data /polkadot/.local/share/polkadot && \
|
|
||||||
mkdir -p /specs
|
|
||||||
|
|
||||||
# add polkadot-parachain binary to the docker image
|
# add polkadot-parachain binary to the docker image
|
||||||
COPY ./target/release/polkadot-parachain /usr/local/bin
|
COPY ./target/release-artifacts/* /usr/local/bin
|
||||||
COPY ./target/release/polkadot-parachain.asc /usr/local/bin
|
|
||||||
COPY ./target/release/polkadot-parachain.sha256 /usr/local/bin
|
|
||||||
COPY ./parachains/chain-specs/*.json /specs/
|
COPY ./parachains/chain-specs/*.json /specs/
|
||||||
|
|
||||||
USER polkadot
|
USER parity
|
||||||
|
|
||||||
# check if executable works in this container
|
# check if executable works in this container
|
||||||
RUN /usr/local/bin/polkadot-parachain --version
|
RUN /usr/local/bin/polkadot-parachain --version
|
||||||
|
|
||||||
EXPOSE 30333 9933 9944
|
EXPOSE 30333 9933 9944 9615
|
||||||
VOLUME ["/polkadot"]
|
VOLUME ["/polkadot", "/specs"]
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/local/bin/polkadot-parachain"]
|
ENTRYPOINT ["/usr/local/bin/polkadot-parachain"]
|
||||||
|
|||||||
@@ -2,5 +2,8 @@
|
|||||||
|
|
||||||
OWNER=${OWNER:-parity}
|
OWNER=${OWNER:-parity}
|
||||||
IMAGE_NAME=${IMAGE_NAME:-polkadot-parachain}
|
IMAGE_NAME=${IMAGE_NAME:-polkadot-parachain}
|
||||||
docker build --no-cache --build-arg IMAGE_NAME=$IMAGE_NAME -t $OWNER/$IMAGE_NAME -f ./docker/injected.Dockerfile .
|
docker build --no-cache \
|
||||||
docker images | grep $IMAGE_NAME
|
--build-arg IMAGE_NAME=$IMAGE_NAME \
|
||||||
|
-t $OWNER/$IMAGE_NAME \
|
||||||
|
-f ./docker/injected.Dockerfile \
|
||||||
|
. && docker images
|
||||||
|
|||||||
Reference in New Issue
Block a user