Skip to content

Update changelog

Update changelog #1918

Workflow file for this run

name: Unittest and docker builds
on:
push:
release:
types: [published]
env:
APP_NAME: xcube
ORG_NAME: bcdev
IMG_REG_NAME: quay.io
jobs:
unittest:
runs-on: ubuntu-latest
env:
NUMBA_DISABLE_JIT: 1
steps:
- uses: actions/checkout@v2
# Setup miniconda build env
- uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: '1.4.8-0'
environment-file: environment.yml
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
# Setup xcube
- name: setup-xcube
shell: bash -l {0}
run: |
conda info
conda list
python setup.py develop
# Run unittests
- name: unittest-xcube
shell: bash -l {0}
run: |
pip install pytest pytest-cov
pytest --cov=./ --cov-report=xml
- uses: codecov/codecov-action@v1
with:
verbose: true # optional (default = false)
build-docker-image:
runs-on: ubuntu-latest
# Build the docker image and push to quay.io
name: build-docker-image
# Only run if unittests succeed
needs: unittest
steps:
- name: git-checkout
uses: actions/checkout@v2
# Determine release tag from git ref
- name: get-release-tag
id: release
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
# Print some info
- name: info
id: info
run: |
echo "TAG: ${{ steps.release.outputs.tag }}"
echo "EVENT: ${{ github.event_name }}"
# Build and push docker image 'latest' to quay.io when the event is a 'push' and branch 'master'
- uses: mr-smithers-excellent/docker-build-push@v5
name: build-push-docker-image-latest
if: ${{ github.event_name == 'push' && steps.release.outputs.tag == 'master' }}
with:
image: ${{ env.ORG_NAME }}/${{ env.APP_NAME }}
tags: master, latest
registry: ${{ env.IMG_REG_NAME }}
username: ${{ secrets.IMG_REG_USERNAME }}
password: ${{ secrets.IMG_REG_PASSWORD }}
# Build and push docker release to quay.io when the event is a 'release'
- uses: mr-smithers-excellent/docker-build-push@v5
name: build-push-docker-image-release
if: ${{ github.event_name == 'release' }}
with:
image: ${{ env.ORG_NAME }}/${{ env.APP_NAME }}
tags: ${{ steps.release.outputs.tag }}
registry: ${{ env.IMG_REG_NAME }}
username: ${{ secrets.IMG_REG_USERNAME }}
password: ${{ secrets.IMG_REG_PASSWORD }}
update-version:
runs-on: ubuntu-latest
needs: build-docker-image
name: update-xcube-tag
steps:
- name: Get installation token
id: get_installation_token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.TOKEN_PROVIDER_APP_ID }}
private_key: ${{ secrets.TOKEN_PROVIDER_KEY }}
repository: bc-org/k8s-configs
# the installationId of the GitHub app we are using
installationId: 36950178
- name: git-checkout
uses: actions/checkout@v2
- name: checkout-k8s
run: |
git clone https://x-access-token:${{ steps.get_installation_token.outputs.token }}@github.com/bc-org/k8s-configs.git
mv k8s-configs k8s
- name: get-release-tag
id: release
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: deployment-phase
id: deployment-phase
uses: bc-org/gha-determine-phase@v0.1
with:
event_name: ${{ github.event_name }}
tag: ${{ steps.release.outputs.tag }}
- name: get-hash
id: get-hash
run: |
HASH=$(skopeo inspect docker://${{ env.IMG_REG_NAME }}/${{ env.ORG_NAME }}/${{ env.APP_NAME }}:${{ steps.release.outputs.tag }} | jq '.Digest')
if [[ "$HASH" == *"sha256"* ]]; then
echo ::set-output name=hash::$HASH
else
echo "No hash present. Using none as hash. This will use the version tag instead for deployment."
echo ::set-output name=hash::none
fi
- name: info
run: |
echo "Event: ${{ github.event_name }}"
echo "Deployment Stage: ${{ steps.deployment-phase.outputs.phase }}"
echo "Release Tag: ${{ steps.release.outputs.tag }}"
echo "Deployment Release Tag: ${{ steps.deployment-phase.outputs.tag }}"
echo "Deployment Digest: ${{ steps.get-hash.outputs.hash }}"
- name: set-version-tag-xcube-gen
uses: bc-org/update-application-version-tags@main
with:
app: ${{ env.APP_NAME }}
phase: ${{ steps.deployment-phase.outputs.phase }}
delimiter: ' '
tag: ${{ steps.deployment-phase.outputs.tag }}
hash: ${{ steps.get-hash.outputs.hash }}
working-directory: ./k8s/xcube-gen/helm
- name: cat-result
working-directory: ./k8s/xcube-gen/helm
run: |
head values-dev.yaml
head values-stage.yaml
head values-prod.yaml
- name: Pushes to another repository
# Don't run if run locally and should be ignored
if: ${{ steps.deployment-phase.outputs.phase != 'ignore' && !env.ACT }}
run: |
cd ./k8s
git config user.name github-actions
git config user.email github-actions@github.com
git commit -am "${{ github.event.release }}. Set version to ${{ steps.release.outputs.tag }}."
git remote set-url origin https://x-access-token:${{ steps.get_installation_token.outputs.token }}@github.com/bc-org/k8s-configs.git
git push origin main