Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use a re-usable workflow from org to publish container images #709

Merged
merged 2 commits into from
Aug 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "Build and publish container image, then (if tag) trigger QGreenland Core build"
# When a push to the default branch occurs, build and release a "latest" image
# When a tag `vX.Y.Z` push occurs, build and release an image with that tag

on:
push:
branches:
- "main"
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"


jobs:

build-and-release-image:
uses: "nsidc/.github/.github/workflows/build-and-publish-container-image.yml@main"
secrets: "inherit"


build-package:
name: "Build QGreenland project (if tag)"
runs-on: "ubuntu-latest"
needs: ["build-and-release-image"]
if: "github.ref_type == 'tag'"
steps:
- name: "Trigger Jenkins to build QGreenland Core"
run: |
JOB_NAME="qgreenland_C3_Production_Build_QGreenland_Package"
JOB_URL="${{ secrets.JENKINS_URL }}/job/${JOB_NAME}"
JOB_BUILD_URL="${JOB_URL}/buildWithParameters?ref=${{ github.ref_name }}&delay=5sec"

wget "$JOB_BUILD_URL"
124 changes: 0 additions & 124 deletions .github/workflows/test-and-build.yml

This file was deleted.

74 changes: 74 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: "Test"

on:
push:
branches:
- "main"
pull_request:


# Default to bash in login mode; key to activating conda environment
# https://github.com/mamba-org/provision-with-micromamba#IMPORTANT
defaults:
run:
shell: "bash -l {0}"


jobs:
test:
name: "Run tests"
runs-on: "ubuntu-latest"
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"

- name: "Apt install libgl1-mesa-glx"
run: |
# Install libgl1-mesa-glx. Import errors occur otherwise.
# See: https://app.circleci.com/jobs/github/nsidc/qgreenland/72/parallel-runs/0/steps/0-102
sudo apt-get update
sudo apt-get install -y libgl1-mesa-glx

- name: "Install Conda environment"
uses: "mamba-org/setup-micromamba@v1"
with:
environment-file: "environments/main/conda-lock.yml"
# When using a lock-file, we have to set an environment name.
environment-name: "qgreenland-ci"
cache-environment: true
# Increase this key to trigger cache invalidation
cache-environment-key: 1

- name: "Run tests"
run: "inv test.ci"
env:
# QGIS complains when setting up an QgsApplicatoin if `QT_QPA_PLATFORM` is not
# set to `offscreen`:
# qt.qpa.xcb: could not connect to display
# qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even
# though it was found.
# This application failed to start because no Qt
# platform plugin could be initialized. Reinstalling the application
# may fix this problem.
#
# Available platform plugins are: eglfs, minimal, minimalegl,
# offscreen, vnc, webgl, xcb.
#
# Fatal Python error: Aborted
QT_QPA_PLATFORM: offscreen


test-build-container-image:
name: "Test container image build"
# The build will happen for real on pushes to the main branch, so only do
# the test on PRs.
if: "github.event_name == 'pull_request'"
runs-on: "ubuntu-latest"
needs: ["test"]
steps:
- name: "Check out repository"
uses: "actions/checkout@v3"

- name: "Build container image"
run: |
docker build .