Release version v2.1.0 #56
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: "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 |