Skip to content

Release version v2.1.0 #56

Release version v2.1.0

Release version v2.1.0 #56

Workflow file for this run

name: "Test: latch register"
on:
pull_request:
branches:
- "*"
push:
branches:
- "develop"
- "main"
workflow_call:
concurrency:
group: latch-register-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
register:
runs-on: ubuntu-24.04
name: "Test: latch register"
environment: github-actions-register
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- id: install
name: Install Latch
uses: ./
# Tests vanilla register
- name: update wf version
run: echo "$(git rev-parse HEAD)-1" > ./tests/test-setup-latch-register/version
- id: latch
name: test remote registration succeeds
uses: ./
with:
register: true
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
- name: Print outputs
shell: bash
run: |
echo latch-version: ${{ steps.latch.outputs.latch-version }}
echo register-version: ${{ steps.latch.outputs.register-version }}
echo already-registered: ${{ steps.latch.outputs.already-registered }}
- name: check already registered
shell: bash
run: |
if [[ "${{ steps.latch.outputs.already-registered }}" == "true" ]]; then
echo "Error: workflow was already registered";
exit 1;
fi
rm -v tests/test-setup-latch-register/.latch/Dockerfile
# FIXME: update this test when https://github.com/latchbio/latch/issues/534 is fixed
# Tests using register-remote false
# FIXME: uncomment me when local registration works
#- name: update wf version
# run: echo "$(git rev-parse HEAD)-2" > ./tests/test-setup-latch-register/version
- id: register-remote
name: test local registration fails
# FIXME: remove me when local registration works
continue-on-error: true
uses: ./
with:
register: true
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
register-remote: false
- name: check failure
shell: bash
run: |
# FIXME: remove me when local registration works
if [[ "${{ steps.register-remote.outcome }}" != "failure" ]]; then
echo "Error: local registration did not fail'";
echo "Is https://github.com/latchbio/latch/issues/534 fixed?";
exit 1;
fi
# FIXME: uncomment me when local registration works
#if [[ "${{ steps.register-remote.outputs.already-registered }}" == "true" ]]; then
# echo "Error: workflow was not already registered with 'already-registered-do-not-fail: false'";
# exit 1;
#fi
# Tests already-registered-do-not-fail=true succeeds
- id: already-registered-do-not-fail-true
name: test already-registered-do-not-fail=true should succeed
uses: ./
with:
register: true
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
already-registered-do-not-fail: true
- name: check already registered
shell: bash
run: |
if [[ "${{ steps.already-registered-do-not-fail-true.outputs.already-registered }}" == "false" ]]; then
echo "Error: workflow was not already registered with 'already-registered-do-not-fail: true'";
exit 1;
fi
# Tests already-registered-do-not-fail=false fails
- id: already-registered-do-not-fail-false
name: test already-registered-do-not-fail=false should fail
continue-on-error: true
uses: ./
with:
register: true
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
already-registered-do-not-fail: false
- name: check already registered failure
run: |
if [[ "${{ steps.already-registered-do-not-fail-false.outputs.already-registered }}" == "false" ]]; then
echo "Error: workflow was not already registered with 'already-registered-do-not-fail: false'";
exit 1;
fi
if [[ "${{ steps.already-registered-do-not-fail-false.outcome }}" != "failure" ]]; then
echo "Error: registration existing workflow did not fail with 'already-registered-do-not-fail: false'";
exit 1;
fi
# Tests register with mark-as-release
- name: update wf version
run: echo "$(git rev-parse HEAD)-1" > ./tests/test-setup-latch-register/version
- id: register-with-mark-as-release
name: test register with mark-as-release
uses: ./
with:
register: true
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
already-registered-do-not-fail: true
mark-as-release: true
- name: Print outputs
shell: bash
run: |
echo latch-version: ${{ steps.register-with-mark-as-release.outputs.latch-version }}
echo register-version: ${{ steps.register-with-mark-as-release.outputs.register-version }}
echo already-registered: ${{ steps.register-with-mark-as-release.outputs.already-registered }}
- name: check success
shell: bash
run: |
if [[ "${{ steps.register-with-mark-as-release.outcome }}" != "success" ]]; then
echo "Error: workflow failed";
exit 1;
fi
# Tests mark-as-release without register should fail
- name: update wf version
run: echo "$(git rev-parse HEAD)-1" > ./tests/test-setup-latch-register/version
- id: mark-as-release-without-register
name: test mark-as-release without register should fail
continue-on-error: true
uses: ./
with:
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
already-registered-do-not-fail: true
mark-as-release: true
- name: check mark-as-release without register failure
run: |
if [[ "${{ steps.mark-as-release-without-register.outcome }}" != "failure" ]]; then
echo "Error: mark-as-release without register did not fail";
exit 1;
fi
# Tests skipping the latch install succeeds when latch is available on the PATH
- name: update wf version
run: echo "$(git rev-parse HEAD)-1" > ./tests/test-setup-latch-register/version
- id: skip-install-success
name: test skipping latch install
uses: ./
with:
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
skip-install: true
- name: Print outputs
shell: bash
run: |
echo latch-version: ${{ steps.skip-install-success.outputs.latch-version }}
echo register-version: ${{ steps.skip-install-success.outputs.register-version }}
echo already-registered: ${{ steps.skip-install-success.outputs.already-registered }}
- name: check success
shell: bash
run: |
if [[ "${{ steps.skip-install-success.outcome }}" != "success" ]]; then
echo "Error: workflow failed";
exit 1;
fi
# Tests skipping the latch install fails when latch is not available on the PATH
- name: update wf version
run: echo "$(git rev-parse HEAD)-1" > ./tests/test-setup-latch-register/version
- name: uninstall latch
shell: bash
run: |
python3 -m pip uninstall --yes latch
- id: skip-install-failure
name: test skipping latch install fails when latch is not available on the PATH
continue-on-error: true
uses: ./
with:
latch-workspace: ${{ secrets.LATCH_WORKSPACE }}
latch-token: ${{ secrets.LATCH_TOKEN }}
register-pkg-root: ./tests/test-setup-latch-register
skip-install: true
- name: check failure
shell: bash
run: |
if [[ "${{ steps.skip-install-failure.outcome }}" != "failure" ]]; then
echo "Error: workflow succeeded";
exit 1;
fi