forked from extern/nushell
Delete docker-publish.yml
This commit is contained in:
parent
16db368232
commit
09691ff866
118
.github/workflows/docker-publish.yml
vendored
118
.github/workflows/docker-publish.yml
vendored
@ -1,118 +0,0 @@
|
|||||||
name: Publish consumable Docker images
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
tags: ['v?[0-9]+.[0-9]+.[0-9]+*']
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
compile:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
arch:
|
|
||||||
- x86_64-unknown-linux-musl
|
|
||||||
- x86_64-unknown-linux-gnu
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Install rust-embedded/cross
|
|
||||||
env: { VERSION: v0.1.16 }
|
|
||||||
run: >-
|
|
||||||
wget -nv https://github.com/rust-embedded/cross/releases/download/${VERSION}/cross-${VERSION}-x86_64-unknown-linux-gnu.tar.gz
|
|
||||||
-O- | sudo tar xz -C /usr/local/bin/
|
|
||||||
- name: compile for specific target
|
|
||||||
env: { arch: '${{ matrix.arch }}' }
|
|
||||||
run: |
|
|
||||||
cross build --target ${{ matrix.arch }} --release
|
|
||||||
# leave only the executable file
|
|
||||||
rm -frd target/${{ matrix.arch }}/release/{*/*,*.d,*.rlib,.fingerprint}
|
|
||||||
find . -empty -delete
|
|
||||||
- uses: actions/upload-artifact@master
|
|
||||||
with:
|
|
||||||
name: ${{ matrix.arch }}
|
|
||||||
path: target/${{ matrix.arch }}/release
|
|
||||||
|
|
||||||
docker:
|
|
||||||
name: Build and publish docker images
|
|
||||||
needs: compile
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
DOCKER_REGISTRY: quay.io/nushell
|
|
||||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_REGISTRY }}
|
|
||||||
DOCKER_USER: ${{ secrets.DOCKER_USER }}
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
tag:
|
|
||||||
- alpine
|
|
||||||
- slim
|
|
||||||
- debian
|
|
||||||
- glibc-busybox
|
|
||||||
- musl-busybox
|
|
||||||
- musl-distroless
|
|
||||||
- glibc-distroless
|
|
||||||
- glibc
|
|
||||||
- musl
|
|
||||||
include:
|
|
||||||
- { tag: alpine, base-image: alpine, arch: x86_64-unknown-linux-musl, plugin: true, use-patch: false}
|
|
||||||
- { tag: slim, base-image: 'debian:stable-slim', arch: x86_64-unknown-linux-gnu, plugin: true, use-patch: false}
|
|
||||||
- { tag: debian, base-image: debian, arch: x86_64-unknown-linux-gnu, plugin: true, use-patch: false}
|
|
||||||
- { tag: glibc-busybox, base-image: 'busybox:glibc', arch: x86_64-unknown-linux-gnu, plugin: false, use-patch: true }
|
|
||||||
- { tag: musl-busybox, base-image: 'busybox:musl', arch: x86_64-unknown-linux-musl, plugin: false, use-patch: false}
|
|
||||||
- { tag: musl-distroless, base-image: 'gcr.io/distroless/static', arch: x86_64-unknown-linux-musl, plugin: false, use-patch: false}
|
|
||||||
- { tag: glibc-distroless, base-image: 'gcr.io/distroless/cc', arch: x86_64-unknown-linux-gnu, plugin: false, use-patch: true }
|
|
||||||
- { tag: glibc, base-image: scratch, arch: x86_64-unknown-linux-gnu, plugin: false, use-patch: false}
|
|
||||||
- { tag: musl, base-image: scratch, arch: x86_64-unknown-linux-musl, plugin: false, use-patch: false}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: actions/download-artifact@master
|
|
||||||
with: { name: '${{ matrix.arch }}', path: target/release }
|
|
||||||
- name: Build and publish exact version
|
|
||||||
run: |-
|
|
||||||
export DOCKER_TAG=${GITHUB_REF##*/}-${{ matrix.tag }}
|
|
||||||
export NU_BINS=target/release/$( [ ${{ matrix.plugin }} = true ] && echo nu* || echo nu )
|
|
||||||
export PATCH=$([ ${{ matrix.use-patch }} = true ] && echo .${{ matrix.tag }} || echo '')
|
|
||||||
chmod +x $NU_BINS
|
|
||||||
|
|
||||||
echo ${DOCKER_PASSWORD} | docker login ${DOCKER_REGISTRY} -u ${DOCKER_USER} --password-stdin
|
|
||||||
docker-compose --file docker/docker-compose.package.yml build
|
|
||||||
docker-compose --file docker/docker-compose.package.yml push # exact version
|
|
||||||
env:
|
|
||||||
BASE_IMAGE: ${{ matrix.base-image }}
|
|
||||||
|
|
||||||
#region semantics tagging
|
|
||||||
- name: Retag and push with suffixed version
|
|
||||||
run: |-
|
|
||||||
VERSION=${GITHUB_REF##*/}
|
|
||||||
|
|
||||||
latest_version=${VERSION%%%.*}-${{ matrix.tag }}
|
|
||||||
latest_feature=${VERSION%%.*}-${{ matrix.tag }}
|
|
||||||
latest_patch=${VERSION%.*}-${{ matrix.tag }}
|
|
||||||
exact_version=${VERSION}-${{ matrix.tag }}
|
|
||||||
|
|
||||||
tags=( ${latest_version} ${latest_feature} ${latest_patch} ${exact_version} )
|
|
||||||
|
|
||||||
for tag in ${tags[@]}; do
|
|
||||||
docker tag ${DOCKER_REGISTRY}/nu:${VERSION}-${{ matrix.tag }} ${DOCKER_REGISTRY}/nu:${tag}
|
|
||||||
docker push ${DOCKER_REGISTRY}/nu:${tag}
|
|
||||||
done
|
|
||||||
|
|
||||||
# latest version
|
|
||||||
docker tag ${DOCKER_REGISTRY}/nu:${VERSION}-${{ matrix.tag }} ${DOCKER_REGISTRY}/nu:${{ matrix.tag }}
|
|
||||||
docker push ${DOCKER_REGISTRY}/nu:${{ matrix.tag }}
|
|
||||||
|
|
||||||
- name: Retag and push debian as latest
|
|
||||||
if: matrix.tag == 'debian'
|
|
||||||
run: |-
|
|
||||||
VERSION=${GITHUB_REF##*/}
|
|
||||||
|
|
||||||
# ${latest features} ${latest patch} ${exact version}
|
|
||||||
tags=( ${VERSION%%.*} ${VERSION%.*} ${VERSION} )
|
|
||||||
|
|
||||||
for tag in ${tags[@]}; do
|
|
||||||
docker tag ${DOCKER_REGISTRY}/nu:${VERSION}-${{ matrix.tag }} ${DOCKER_REGISTRY}/nu:${tag}
|
|
||||||
docker push ${DOCKER_REGISTRY}/nu:${tag}
|
|
||||||
done
|
|
||||||
|
|
||||||
# latest version
|
|
||||||
docker tag ${DOCKER_REGISTRY}/nu:${{ matrix.tag }} ${DOCKER_REGISTRY}/nu:latest
|
|
||||||
docker push ${DOCKER_REGISTRY}/nu:latest
|
|
||||||
#endregion semantics tagging
|
|
Loading…
Reference in New Issue
Block a user