remove namespace usage from CSI #964
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linux Unit tests and docker push | |
on: | |
pull_request: | |
push: | |
branches: ['master', 'dev'] | |
release: | |
types: [created] | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.x | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ^1.21 | |
id: go | |
- name: Check out code into the Go module directory | |
uses: actions/checkout@v4 | |
- name: Tidy Go modules | |
run: | | |
go mod tidy | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Install QEMU | |
uses: docker/setup-qemu-action@v2 | |
with: | |
platforms: linux/arm64,linux/amd64 | |
- name: Enable Docker BuildKit and Buildx | |
run: | | |
export DOCKER_CLI_EXPERIMENTAL=enabled | |
export DOCKER_BUILDKIT=1 | |
docker buildx create --use | |
- name: Test | |
run: | | |
make test | |
- name: Set docker image tag | |
id: get_info | |
run: | | |
if [[ "${{ github.event_name }}" == "release" ]]; then | |
echo "TAG=${{ github.event.release.tag_name }}" >> $GITHUB_ENV | |
echo "BRANCH=release" >> $GITHUB_ENV | |
echo "SHA=${{ github.event.release.target_commitish }}" >> $GITHUB_ENV | |
elif [[ "${{ github.ref }}" == refs/pull/* ]]; then | |
tag=${GITHUB_REF/\/merge/} | |
echo "TAG=$(echo pr-${tag:10})" >> $GITHUB_ENV | |
echo "BRANCH=${GITHUB_HEAD_REF}" >> $GITHUB_ENV | |
echo "SHA=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV | |
else | |
echo "TAG=$(echo ${GITHUB_REF#refs/*/} | sed 's/\//-/g')" >> $GITHUB_ENV | |
echo "BRANCH=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV | |
echo "SHA=$GITHUB_SHA" >> $GITHUB_ENV | |
fi | |
- name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_GEOFFREY }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_GEOFFREY }} | |
aws-region: us-east-1 | |
- name: Login to ECR | |
id: login-ecr | |
uses: aws-actions/amazon-ecr-login@v2 | |
with: | |
registry-type: public | |
- name: Build & Push | |
run: | | |
SHORT_SHA=$(echo ${{ env.SHA }} | head -c 8) | |
make image | |
# Docker Hub Tags | |
docker tag simplyblock/spdkcsi:latest-amd64 simplyblock/spdkcsi:$TAG-amd64 | |
docker tag simplyblock/spdkcsi:latest-arm64 simplyblock/spdkcsi:$TAG-arm64 | |
# ECR Tags | |
docker tag simplyblock/spdkcsi:latest-amd64 public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 | |
docker tag simplyblock/spdkcsi:latest-arm64 public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
# Push to Docker Hub | |
docker push simplyblock/spdkcsi:$TAG-amd64 | |
docker push simplyblock/spdkcsi:$TAG-arm64 | |
# Push to Amazon ECR | |
docker push public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 | |
docker push public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
# Create multi-arch manifests | |
if [ "${{ github.event_name }}" = "release" ]; then | |
docker buildx imagetools create -t simplyblock/spdkcsi:$TAG simplyblock/spdkcsi:$TAG-amd64 simplyblock/spdkcsi:$TAG-arm64 | |
docker buildx imagetools create -t public.ecr.aws/simply-block/spdkcsi:$TAG public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
elif [ "${{ github.ref }}" = "refs/heads/master" ]; then | |
docker buildx imagetools create -t simplyblock/spdkcsi:latest simplyblock/spdkcsi:$TAG-amd64 simplyblock/spdkcsi:$TAG-arm64 | |
docker buildx imagetools create -t public.ecr.aws/simply-block/spdkcsi:latest public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
else | |
docker buildx imagetools create -t simplyblock/spdkcsi:$TAG simplyblock/spdkcsi:$TAG-amd64 simplyblock/spdkcsi:$TAG-arm64 | |
docker buildx imagetools create -t public.ecr.aws/simply-block/spdkcsi:$TAG public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
docker buildx imagetools create -t simplyblock/spdkcsi:$TAG-$SHORT_SHA simplyblock/spdkcsi:$TAG-amd64 simplyblock/spdkcsi:$TAG-arm64 | |
docker buildx imagetools create -t public.ecr.aws/simply-block/spdkcsi:$TAG-$SHORT_SHA public.ecr.aws/simply-block/spdkcsi:$TAG-amd64 public.ecr.aws/simply-block/spdkcsi:$TAG-arm64 | |
fi |