Run commitlint
on pull requests
#2368
Workflow file for this run
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: ci:build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
merge_group: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Continuous integration (build) | |
strategy: | |
matrix: | |
platform: | |
- ubuntu-latest | |
architecture: | |
- os.linux.x86_64 | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 15 | |
outputs: | |
node-version: ${{ steps.meteor-node.outputs.version }} | |
steps: | |
- name: Checkout 🛎️ | |
uses: actions/checkout@v4 | |
- name: Install 💾 | |
uses: meteor-actions/install@v3 | |
- name: Get Meteor's Node version | |
id: meteor-node | |
run: | | |
echo \ | |
"version=$(meteor node --version | tail -c +2)" \ | |
>> "$GITHUB_OUTPUT" | |
- name: Cache build 💽 | |
uses: meteor-actions/cache-build@v3 | |
with: | |
key: build | |
- name: Build 🏗️ | |
run: | | |
meteor npm run build -- ./dist --directory --architecture ${{ matrix.architecture }} --server-only | |
- name: Compress build 🧶 | |
run: | | |
tar czf dist.tar.gz --directory dist/bundle . | |
- name: Archive build 💽 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: artifacts | |
path: dist.tar.gz | |
retention-days: 1 | |
test: | |
needs: | |
- build | |
strategy: | |
matrix: | |
platform: | |
- ubuntu-latest | |
architecture: | |
- linux-x64 | |
runs-on: ${{ matrix.platform }} | |
timeout-minutes: 1 | |
steps: | |
- name: Load build 💽 | |
uses: actions/download-artifact@v4 | |
with: | |
name: artifacts | |
path: artifacts | |
- name: Set up Node.js 💾 | |
uses: meteor-actions/setup-node@v1 | |
with: | |
node-version: ${{ needs.build.outputs.node-version }} | |
architecture: ${{ matrix.architecture }} | |
- name: Inflate build 🧥 | |
run: | | |
mkdir -p dist | |
tar xzf artifacts/dist.tar.gz --directory dist | |
- name: Inspect build | |
run: | | |
ls -la dist | |
- name: Inspect build | |
run: | | |
cat dist/README | |
- name: Inspect build | |
run: | | |
ls -la dist/server | |
- name: Inspect build | |
run: | | |
cat dist/star.json | |
- name: Inspect build | |
run: | | |
ls -la dist/programs | |
- name: Inspect build | |
run: | | |
ls -la dist/programs/server | |
- name: Check node version | |
run: | | |
diff dist/.node_version.txt <(node --version) | |
diff <(jq -r .nodeVersion dist/star.json) <(node --version | tail -c +2) | |
- name: Check npm version | |
run: | # Patch sometimes does not match | |
diff <(npm --version | cut -d. -f-2) <(jq -r .npmVersion dist/star.json | cut -d. -f-2) | |
- name: Install dependencies | |
run: | | |
cd dist/programs/server | |
npm install | |
- name: Start Mongo | |
env: | |
MONGO_VERSION: '5.0' | |
run: | | |
echo 'dbpath=/data/db' > "${GITHUB_WORKSPACE}/mongodb.conf" | |
echo 'replSet=meteor' >> "${GITHUB_WORKSPACE}/mongodb.conf" | |
mkdir -p "${GITHUB_WORKSPACE}/data/db" | |
docker container run \ | |
--detach \ | |
--restart=unless-stopped \ | |
--publish=127.0.0.1:27017:27017 \ | |
--volume="${GITHUB_WORKSPACE}/data/db":/data/db \ | |
--volume="${GITHUB_WORKSPACE}/mongodb.conf":/mongodb.conf \ | |
--log-opt max-size=100m \ | |
--log-opt max-file=7 \ | |
--name=mongodb \ | |
--hostname mongodb \ | |
"mongo:${MONGO_VERSION}" mongod -f /mongodb.conf | |
sleep 10 | |
docker exec mongodb mongo --eval \ | |
'try {var c = rs.config();} catch (e){} if (c && c.members[0].host === "127.0.0.1:27017") { c.members[0].host = "mongodb:27017"; rs.reconfig(c); } else { rs.initiate({_id: "meteor", members: [{_id: 0, host: "mongodb:27017"}]}) }' | |
- name: Run server | |
env: | |
ROOT_URL: http://localhost | |
MONGO_URL: mongodb://127.0.0.1:27017/meteor | |
PORT: 3000 | |
run: | | |
cd dist | |
node main.js |