Merge pull request #343 from kbst/fix-updater #1910
This file contains 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: Build | |
on: | |
push: | |
branches: | |
- "*" # run for branches | |
tags: | |
- "*" # run for tags | |
env: | |
TERRAFORM_VERSION: "1.3.4" | |
jobs: | |
# | |
# | |
# Build artifacts | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
# Run builder | |
- name: Run builder | |
uses: ./.github/actions/builder | |
# Upload artifacts | |
- name: 'Upload artifacts' | |
uses: actions/[email protected] | |
with: | |
name: _dist | |
path: _dist/*.zip | |
# | |
# | |
# Test `kustomize build` | |
test-terraform: | |
runs-on: ubuntu-latest | |
steps: | |
# Checkout | |
- uses: actions/[email protected] | |
# Setup Terraform | |
- name: Setup Terraform | |
uses: hashicorp/[email protected] | |
with: | |
terraform_wrapper: false | |
terraform_version: "${{ env.TERRAFORM_VERSION }}" | |
# Run tests | |
- name: Run tests | |
run: make test-terraform | |
# | |
# | |
# Test `kustomize build` | |
test-kustomize: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
kustomize-version: ["4.5.2"] | |
needs: build | |
steps: | |
# Checkout | |
- uses: actions/[email protected] | |
# Download build artifacts | |
- name: 'Download build-artifacts' | |
uses: actions/[email protected] | |
with: | |
name: _dist | |
path: _dist | |
# Build image | |
- name: Build image | |
env: | |
DOCKER_BUILDKIT: 1 | |
run: docker build --build-arg KUSTOMIZE_VERSION=${{ matrix.kustomize-version }} -t test-kustomize:${{ matrix.kustomize-version }} test/kustomize/ | |
# Run tests | |
- name: Run tests | |
run: docker run -v `pwd`/_dist:/_dist test-kustomize:${{ matrix.kustomize-version }} | |
# | |
# | |
# Test deploy to k3d | |
test-k3d: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
# Checkout | |
- uses: actions/[email protected] | |
# Setup k3d | |
- name: Setup k3d | |
uses: rinx/[email protected] | |
with: | |
skipClusterCreation: true | |
- name: Create k3d cluster | |
run: make k3d | |
# Download build artifacts | |
- name: 'Download build-artifacts' | |
uses: actions/download-artifact@v2 | |
with: | |
name: _dist | |
path: _dist | |
# Build test image | |
- name: Build test image | |
run: docker build -t test-k3d test/k3d/ | |
# Deploy to cluster | |
- name: Run test container | |
run: docker run --network host --rm -v `pwd`/_dist:/_dist -v $HOME/.kube/config:/opt/test/.kubeconfig test-k3d | |
# | |
# | |
# | |
publish: | |
runs-on: ubuntu-latest | |
needs: [test-kustomize, test-k3d, test-terraform] | |
steps: | |
# Download build artifacts | |
- name: 'Download build-artifacts' | |
uses: actions/[email protected] | |
with: | |
name: _dist | |
path: _dist | |
# Upload archive | |
- uses: google-github-actions/[email protected] | |
with: | |
service_account_key: ${{ secrets.GCLOUD_AUTH }} | |
- run: gsutil -m cp _dist/*.zip gs://dev.catalog.kubestack.com | |
# | |
# | |
# Promote tagged releases | |
# from `dev.catalog.kubestack.com` to `catalog.kubestack.com` | |
promote: | |
runs-on: ubuntu-latest | |
needs: publish | |
# promote only for tags | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
# Setup gcloud CLI | |
- uses: google-github-actions/[email protected] | |
with: | |
service_account_key: ${{ secrets.GCLOUD_AUTH }} | |
# Promote archive | |
- run: | | |
export NAME=$(echo $GITHUB_REF | sed -e "s#^refs/tags/##") | |
set +e | |
while true | |
do | |
gsutil cp gs://dev.catalog.kubestack.com/${NAME}.zip gs://catalog.kubestack.com/${NAME}.zip &&\ | |
gsutil cp gs://dev.catalog.kubestack.com/module-${NAME}.zip gs://catalog.kubestack.com/module-${NAME}.zip &&\ | |
break | |
sleep 15 | |
done | |
# Check promotion | |
- name: Check promotion | |
run: | | |
export NAME=$(echo $GITHUB_REF | sed -e "s#^refs/tags/##") | |
wget https://storage.googleapis.com/catalog.kubestack.com/${NAME}.zip | |
wget https://storage.googleapis.com/catalog.kubestack.com/module-${NAME}.zip |