Skip to content

Centos7 CI (push and/or release) #3924

Centos7 CI (push and/or release)

Centos7 CI (push and/or release) #3924

Workflow file for this run

name: Centos7 CI (push and/or release)
on:
release:
types: [ created ]
push:
branches:
- develop
- dependabot/*
schedule:
- cron: '21 2 * * *'
workflow_call:
inputs:
run-tests:
required: true
type: string
target_branch:
required: true
type: string
env:
GITHUB_TOKEN: ${{ github.token }}
IS_RELEASE: ${{ github.event_name == 'workflow_dispatch' }}
IS_PUSH: ${{ github.event_name == 'push' }}
REF: ${{ inputs.target_branch =='' && github.ref_name || inputs.target_branch}}
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
#sparse checkout -- only needed files
- uses: actions/checkout@v4
with:
fetch-depth: 0
sparse-checkout: |
docker
src/vcpkg.json
ref: ${{ env.REF }}
- name: set env variables -- DockerFiles
run: |
echo "DOCKERFILE=$(pwd)/docker/Dockerfile" >> $GITHUB_ENV
echo "DOCKERDIR=$(pwd)/docker" >> $GITHUB_ENV
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
docker/AntaresDeps
- name: Docker file push
id: docker_push
if: steps.changed-files.outputs.any_changed == 'true'
uses: elgohr/Publish-Docker-Github-Action@main
with:
name: antaresrte/antaressystemdeps
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
workdir: ${{ env.DOCKERDIR }}
dockerfile: ${{ env.DOCKERDIR }}/AntaresDeps
cache: false
tags: latest
- name: create vcpkg cache dir
run: |
echo "VCPKG_CACHE_DIR=$GITHUB_WORKSPACE/vcpkg_cache" >> $GITHUB_ENV
mkdir -p ${{ github.workspace }}/vcpkg_cache
- name: Restore vcpkg binary dir from cache
id: cache-vcpkg-binary
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}/vcpkg_cache
key: vcpkg-cache-centos7-${{ hashFiles('src/vcpkg.json', '.git/modules/vcpkg/HEAD') }}
# Allows to restore a cache when deps have only partially changed (like adding a dependency)
restore-keys: vcpkg-cache-centos7-
- name: Setup ccache
uses: hendrikmuhs/[email protected]
with:
key: centos7-on-${{ runner.os }}
- name: Build the image and Antares
run: |
ls -latr .ccache/ && \
docker build \
-t antares:centos7 \
--build-arg="BRANCH=${{ env.REF }}" \
--build-arg="NPROC=$(nproc)" \
--build-arg="VCPKG_CACHE_DIR=./vcpkg_cache" \
--build-arg CCACHE_DIR=./.ccache \
--build-arg CCACHE_KEY=centos7-on-${{ runner.os }} \
-f ${{ env.DOCKERFILE }} .
- name: create a container without starting it && retrieve the .tgz
run: |
container_id=$(docker create antares:centos7)
docker cp $container_id:/workspace/Antares_Simulator/_build/archive archive
docker cp $container_id:/workspace/vcpkg_cache ${{ env.VCPKG_CACHE_DIR }}
docker cp $container_id:/workspace/.ccache/. .ccache
ls -la .ccache
docker rm $container_id
- name: Publish assets
if: ${{ env.IS_RELEASE == 'true' }}
env:
GITHUB_TOKEN: ${{ github.token }}
tag: ${{ github.event.inputs.release_tag }}
run: |
gh release upload "$tag" archive/*.tar.gz archive/*.rpm
- name: Cache vcpkg binary dir
if: always()
id: save-cache-vcpkg-binary
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/vcpkg_cache
key: vcpkg-cache-centos7-${{ hashFiles('src/vcpkg.json', '.git/modules/vcpkg/HEAD') }}