38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
set -euo pipefail
|
||
|
|
||
|
main() {
|
||
|
cd "$(dirname "$0")/../.."
|
||
|
source ./ci/lib.sh
|
||
|
|
||
|
download_artifact release-images ./release-images
|
||
|
if [[ ${CI-} ]]; then
|
||
|
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
|
||
|
fi
|
||
|
|
||
|
for img in ./release-images/*; do
|
||
|
docker load -i "$img"
|
||
|
done
|
||
|
|
||
|
# We have to ensure the amd64 and arm64 images exist on the remote registry
|
||
|
# in order to build the manifest.
|
||
|
# We don't put the arch in the tag to avoid polluting the main repository.
|
||
|
# These other repositories are private so they don't pollute our organization namespace.
|
||
|
docker push "codercom/code-server-amd64:$VERSION"
|
||
|
docker push "codercom/code-server-arm64:$VERSION"
|
||
|
|
||
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||
|
|
||
|
docker manifest create "codercom/code-server:$VERSION" \
|
||
|
"codercom/code-server-amd64:$VERSION" \
|
||
|
"codercom/code-server-arm64:$VERSION"
|
||
|
docker manifest push --purge "codercom/code-server:$VERSION"
|
||
|
|
||
|
docker manifest create "codercom/code-server:latest" \
|
||
|
"codercom/code-server-amd64:$VERSION" \
|
||
|
"codercom/code-server-arm64:$VERSION"
|
||
|
docker manifest push --purge "codercom/code-server:latest"
|
||
|
}
|
||
|
|
||
|
main "$@"
|