Bump to 2.5.6 #188
This file contains 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: Push (compose tests) | |
on: | |
push: {} | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: {} | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: npm install | |
run: npm install | |
- name: compose build of conlink | |
run: docker compose -f examples/test1-compose.yaml build | |
- name: "dctest test/test*.yaml" | |
timeout-minutes: 5 | |
run: time node_modules/.bin/dctest --verbose-commands conlink-test $(ls -v test/test*.yaml) | |
- name: "show logs" | |
if: always() | |
run: | | |
docker compose -p conlink-test logs --no-color -t || true | |
- name: Check --show-config and net2dot | |
run: | | |
cfg=$(./conlink --show-config --compose-file examples/test1-compose.yaml) | |
summary=$(echo "${cfg}" | jq -r '.|"\(.bridges|keys|sort|join(".")) \(.services|keys|sort|join("."))"') | |
[ "${summary}" = "s1.s2.s3 h1.h2.h3.r0" ] | |
dot=$(echo "${cfg}" | ./net2dot) | |
[ $(echo "${dot}" | grep "r0.*eth" | wc -l) -ge 10 ] | |
# Decide if a release is necessary, do any release linting/checks | |
check-release: | |
needs: [ tests ] | |
name: Check Release | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '.') | |
outputs: | |
RELEASE_VERSION: ${{ steps.get-version.outputs.RELEASE_VERSION }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: { submodules: 'recursive', fetch-depth: 0 } | |
- id: get-version | |
name: Get release version | |
run: | | |
echo "RELEASE_VERSION=$(jq -r .version package.json)" | tee "$GITHUB_ENV" | tee "$GITHUB_OUTPUT" | |
- name: Check git tag matches release version | |
run: | | |
[ "refs/tags/v${RELEASE_VERSION}" == "${{ github.ref }}" ] | |
release-npm: | |
needs: [ check-release ] | |
name: Release NPM | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: { submodules: 'recursive', fetch-depth: 0 } | |
# Setup .npmrc file to publish to npm | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
registry-url: 'https://registry.npmjs.org' | |
scope: '' | |
- run: npm publish | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
release-docker-hub: | |
needs: [ check-release ] | |
name: Release Docker Hub | |
runs-on: ubuntu-latest | |
env: | |
RELEASE_VERSION: ${{ needs.check-release.outputs.RELEASE_VERSION }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: { submodules: 'recursive', fetch-depth: 0 } | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v6 | |
with: | |
push: true | |
tags: lonocloud/conlink:${{ env.RELEASE_VERSION }} | |
- name: Build and push | |
uses: docker/build-push-action@v6 | |
with: | |
push: true | |
tags: lonocloud/conlink:latest |