Add external use tests to build.yml (#5)

* make build.yml reproducible

`build.yml` is currently biased to succeed every time on this repository. Reasoning is that it will always checkout the actions' repository (which essentially transfers the actions' files to the "working directory", not the case if this action is being used externally), and it assumes that the action is run locally.

This commit breaks the build file into two parts: one that performs the current action as-is, and a new job which attempts to simulate usage from an external repository. In this job, no initial checkout is made and an immediate attempt at connecting to a ZeroTier network is made.

* trigger workflow run

* build.yml: only run test job on main

This forces the `test` job to only run if the workflow was triggered from the `main` branch. It wouldn't make sense to check if `main` works when using a different branch or tag, so this avoids doing that entirely.

`test` cannot automatically use the ref that triggered this workflow because `uses` does not take in expressions (and therefore cannot use `github.ref_name`).
This commit is contained in:
Chlod Aidan Alejandro
2022-12-23 22:00:22 +08:00
committed by GitHub
parent b72522a44b
commit efa3abecfd
+24
View File
@@ -27,3 +27,27 @@ jobs:
let count=count-1
done
echo "ping success"
test:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
runs-on: ${{ matrix.os }}
if: github.ref_name === "main"
steps:
- name: zerotier
uses: zerotier/github-action@main
with:
network_id: ${{ secrets.ZEROTIER_NETWORK_ID }}
auth_token: ${{ secrets.ZEROTIER_CENTRAL_TOKEN }}
- name: ping host
shell: bash
run: |
count=10
while ! ping -c 1 ${{ secrets.ZEROTIER_HOST_IP }} ; do
echo "waiting..." ;
sleep 1 ;
let count=count-1
done
echo "ping success"