Merge pull request #159 from Geoportail-Luxembourg/GSLUX-743-modify-c… #74
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_package | |
on: | |
push: | |
branches: | |
- 'main' | |
tags: | |
- '*' | |
jobs: | |
tag-version: | |
if: github.ref_type != 'tag' | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout ${{ github.head_ref }} | |
uses: actions/checkout@v4 | |
with: | |
# default depth is 1, but we need the parent refs | |
fetch-depth: 2 | |
- name: compute tag name | |
shell: bash | |
run: | | |
branch=$([[ $(git log --pretty="%p" -n 1 | wc -w) -gt 1 ]] \ | |
&& echo $(git log -n 1 --pretty="%s" | sed "s|.*Geoportail-Luxembourg/\(.*\)|\1|") \ | |
|| git branch --show-current) | |
echo $branch | |
echo "AUTO_TAG=${branch}_CI_$(git log -n 1 --pretty=%h)" >> $GITHUB_ENV | |
- name: tag ${{ github.head_ref }} | |
run: | | |
git tag ${{ env.AUTO_TAG }} | |
git push --tags | |
lux-package: | |
# the combination (if always) + (needs tag-version) makes sure the lux-package job runs | |
# after completion of the tag-version job. | |
# In case of a tag push, the tag-version job is skipped but the lux-package job will run | |
# In case of a closed PR, the tag-version job runs first, the lux-package job runs after completion | |
if: ${{ always() }} | |
needs: tag-version | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} | |
fetch-depth: 2 | |
- name: compute tag name | |
shell: bash | |
run: | | |
branch=$([[ $(git log --pretty="%p" -n 1 | wc -w) -gt 1 ]] \ | |
&& echo $(git log -n 1 --pretty="%s" | sed "s|.*Geoportail-Luxembourg/\(.*\)|\1|") \ | |
|| git branch --show-current) | |
echo $branch | |
echo "AUTO_TAG=${branch}_CI_$(git log -n 1 --pretty=%h)" >> $GITHUB_ENV | |
- name: create release | |
id: create_release | |
uses: octokit/request-action@v2.x | |
with: | |
# secrets.GITHUB_TOKEN is a secret only valid for one CI execution | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
route: POST /repos/{owner}/{repo}/releases | |
owner: 'Geoportail-Luxembourg' | |
repo: 'luxembourg-geoportail' | |
tag_name: ${{ github.ref_type == 'tag' && github.ref || env.AUTO_TAG }} | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 16 | |
cache: 'npm' | |
- name: Build and pack prod library | |
shell: bash | |
run: | | |
npm ci | |
npm run build:lib:prod | |
npm pack | |
- name: upload manually | |
run: | | |
project_name=$(npm run env | grep "npm_package_name" | sed s/npm_package_name=//) | |
pkg_name=$(ls $project_name-*) | |
lib_name=$(echo $pkg_name | sed s/luxembourg-geoportail-/luxembourg-geoportail-lib-/) | |
curl -X POST "https://uploads.github.com/repos/$owner/$repo/releases/$id/assets?name=$lib_name" --header "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -H "Content-Type: application/octet-stream" --data-binary "@$pkg_name" | |
env: | |
owner: 'Geoportail-Luxembourg' | |
repo: 'luxembourg-geoportail' | |
id: ${{ fromJSON(steps.create_release.outputs.data).id }} |